C# 如何反序列化此JSON数组
JSON如下所示(伪代码): 所以它是一个数组,数组中的第一件事是我不感兴趣的对象,第二件事是另一个数组,其中充满了我想要反序列化的对象C# 如何反序列化此JSON数组,c#,asp.net,json.net,C#,Asp.net,Json.net,JSON如下所示(伪代码): 所以它是一个数组,数组中的第一件事是我不感兴趣的对象,第二件事是另一个数组,其中充满了我想要反序列化的对象 如何使用JSON.NET实现这一点 您可以通过强类型转换或动态方式访问第二组对象,下面是一个动态操作的示例: dynamic jsonArray = JArray.Parse(json); dynamic targetJsonObjects = jsonArray[1]; 你试过这样简单的模型吗 public class RootObjec
如何使用JSON.NET实现这一点 您可以通过强类型转换或动态方式访问第二组对象,下面是一个动态操作的示例:
dynamic jsonArray = JArray.Parse(json);
dynamic targetJsonObjects = jsonArray[1];
你试过这样简单的模型吗
public class RootObject
{
public object IntroObject { get; set; }
public List<Item> Items { get; set; }
}
public class Item
{
public string WhatEverPropertyYouNeed{ get; set; }
}
公共类根对象
{
公共对象IntroObject{get;set;}
公共列表项{get;set;}
}
公共类项目
{
公共字符串WhatEverPropertyYouNeed{get;set;}
}
您可以使用Json.Net来完成这项工作
例如,假设您的JSON如下所示:
[
{
"blah": "nothing interesting here"
},
[
{
"id": 1,
"name": "foo",
"desc": "description of foo"
},
{
"id": 2,
"name": "bar",
"desc": "blurb about bar"
},
{
"id": 3,
"name": "baz",
"desc": "buzz about baz"
}
]
]
首先,定义一个类来保存您感兴趣的内部数组中的项
public class Item
{
[JsonProperty("id")]
public int Id { get; set; }
[JsonProperty("name")]
public string Name { get; set; }
[JsonProperty("desc")]
public string Description { get; set; }
}
现在,您只需将JSON解析为一个JArray
,然后从中获取子数组,并使用ToObject()
将其转换为一个项目列表
JArray ja = JArray.Parse(json);
List<Item> list = ja[1].ToObject<List<Item>>();
JArray ja=JArray.Parse(json);
List=ja[1].ToObject();
从那里,您可以像平常一样使用项目列表
Fiddle:请阅读,提供(强调可验证,因为您显示的显然不是有效的JSON)并分享您尝试过的内容。您尝试过什么吗?有什么特别的问题吗?首先你应该(提示,不是)在你感兴趣的JSON部分,数组中的所有对象都有相同的结构吗?好的,很好;这很有帮助。我添加了一个答案来说明基本方法。动态应该只在设计时无法知道结构的情况下使用。这个结构实际上不起作用,因为JSON的外部是一个数组,而不是一个对象。非常感谢!没问题;很高兴我能帮忙。
JArray ja = JArray.Parse(json);
List<Item> list = ja[1].ToObject<List<Item>>();