C# 如何从元素为流体的Json中提取数据集
我的WebApi中有一个Json对象。结构可以采取任何形式。我唯一能确定的是,在该结构的某个地方(可以是顶级节点,也可以是子节点),我将有一个由以下部分组成的节点:C# 如何从元素为流体的Json中提取数据集,c#,json,C#,Json,我的WebApi中有一个Json对象。结构可以采取任何形式。我唯一能确定的是,在该结构的某个地方(可以是顶级节点,也可以是子节点),我将有一个由以下部分组成的节点: "data": { "mop": "1012346354462", "fuelType": "E", "Id": "1029dd56-10b1-46cb-9
"data": {
"mop": "1012346354462",
"fuelType": "E",
"Id": "1029dd56-10b1-46cb-9966-3c37e057a470",
"Status": "SecuredActive",
"StatusFromDate": "2020-11-20T17:00:00.000Z",
"ActiveDate": "2020-11-21T00:00:00.000Z",
"GeneratedReference": "1012346354462_1"
},
有人能帮我从JSon对象中轻松提取这一点数据吗。我有一个映射到这些属性的类,但在使用它之前,我需要从JSON的其余部分中挑出它。我正在使用C#使用JSON转换来反序列化对象
var Data = JsonConvert.DeserializeObject<dynamic>(data);
var Data=JsonConvert.DeserializeObject(数据);
然后可以使用数据对象进行访问。
例如:Console.WriteLine((String)Data.Data.fuelTypereturn)代码>
回答为“E”经过反复思考,我终于找到了解决方案,所以我想我会发布帖子,以防其他人遇到类似问题
JObject result = JObject.Parse(Request.ToString());
var clientarray = result["events"].Value<JArray>();
var blockIwant = clientarray.Children<JObject>().Select(x => x.Children<JProperty>().Where(y => y.Name == "data").First());
JObject result=JObject.Parse(Request.ToString());
var clientarray=result[“events”].Value();
var blockIwant=clientarray.Children().Select(x=>x.Children().Where(y=>y.Name==“data”).First();
假设您使用System.Text.Json:您可以使用Q&A中提供的扩展来获取名为数据的JsonElement
,然后使用Q&A将其反序列化为对象。这不起作用。例如,如果我上面的示例被包装在另一个元素中,那么“object”不包含“data”的定义