首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >Newtonsoft JSON反序列化

Newtonsoft JSON反序列化
EN

Stack Overflow用户
提问于 2013-06-11 15:36:48
回答 3查看 254.8K关注 0票数 87

我的JSON如下:

{"t":"1339886","a":true,"data":[],"Type":[['Ants','Biz','Tro']]}

我找到了适用于C#的Newtonsoft JSON.NET反序列化库。我尝试按如下方式使用它:

object JsonDe = JsonConvert.DeserializeObject(Json); 

如何访问JsonDe对象来获取所有的“类型”数据?我尝试了一个循环,但它不工作,因为对象没有枚举器。

EN

回答 3

Stack Overflow用户

发布于 2014-04-08 23:07:56

一种更简单的解决方案:使用动态类型

从Json.NET 4.0 Release 1开始,提供了本机dynamic支持。你不需要声明一个类,只需使用dynamic

dynamic jsonDe = JsonConvert.DeserializeObject(json);

所有字段都将可用:

foreach (string typeStr in jsonDe.Type[0])
{
    // Do something with typeStr
} 

string t = jsonDe.t;
bool a = jsonDe.a;
object[] data = jsonDe.data;
string[][] type = jsonDe.Type;

使用dynamic,您不需要创建特定的类来保存数据。

票数 84
EN

Stack Overflow用户

发布于 2015-10-22 23:22:04

根据Newtonsoft Documentation,您还可以反序列化为匿名对象,如下所示:

var definition = new { Name = "" };

string json1 = @"{'Name':'James'}";
var customer1 = JsonConvert.DeserializeAnonymousType(json1, definition);

Console.WriteLine(customer1.Name);
// James
票数 12
EN

Stack Overflow用户

发布于 2021-03-19 23:07:24

//Your snippet
object JsonDe = JsonConvert.DeserializeObject(Json);

//what you need to do
JObject JsonDe = JsonConvert.DeserializeObject<JObject>(Json);

现在,您有了具有适当属性和方法的对象来处理数据。

您也可以使用Dictionary而不是JObject。然而,还有其他的选择,尽管是强类型的。

NewtonSoft.Json是一个很好的库。我已经将它用于许多用例。

json的美妙之处在于可以动态创建模式。因此,我们需要能够编写泛型代码来使用它们

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17038810

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档