我的JSON如下:
{"t":"1339886","a":true,"data":[],"Type":[['Ants','Biz','Tro']]}
我找到了C#的Newtonsoft JSON.NET反序列化库。我尝试如下使用它:
object JsonDe = JsonConvert.DeserializeObject(Json); 
如何访问JsonDe对象以获取所有“类型”数据?我尝试了一个循环,但由于对象没有枚举器而无法正常工作。
我的JSON如下:
{"t":"1339886","a":true,"data":[],"Type":[['Ants','Biz','Tro']]}
我找到了C#的Newtonsoft JSON.NET反序列化库。我尝试如下使用它:
object JsonDe = JsonConvert.DeserializeObject(Json); 
如何访问JsonDe对象以获取所有“类型”数据?我尝试了一个循环,但由于对象没有枚举器而无法正常工作。
Answers:
您可以实现一个类,该类保存您的JSON中的字段
class MyData
{
    public string t;
    public bool a;
    public object[] data;
    public string[][] type;
}
然后使用DeserializeObject的通用版本:
MyData tmp = JsonConvert.DeserializeObject<MyData>(json);
foreach (string typeStr in tmp.type[0])
{
    // Do something with typeStr
}
文档:序列化和反序列化JSON
MyData tmp = (MyData)JsonConvert.DeserializeObject(json);。谢谢,通用版本的反序列化效果更好。:-)
                    dotnet add package Newtonsoft.Json和using Newtonsoft.Json;。
                    从Json.NET 4.0 Release 1开始,提供了本机动态支持。您无需声明类,只需使用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,您无需创建特定的类来保存数据。
dynamic:)
                    根据Newtonsoft文档,您还可以反序列化为这样的匿名对象:
var definition = new { Name = "" };
string json1 = @"{'Name':'James'}";
var customer1 = JsonConvert.DeserializeAnonymousType(json1, definition);
Console.WriteLine(customer1.Name);
// James
definition,DeserializeAnonymousType在这种情况下该如何使用?