在C#中反序列化json字符串(数组)的一部分 [英] deserialize part of json string (array) in c#
本文介绍了在C#中反序列化json字符串(数组)的一部分的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我有一个像这样的json字符串:
I have a json string like this:
{
"Results":[
{
"attr1": "value1",
"attr2": "value2",
"A": "value_a",
"B": "value_b",
"C": "value_c",
"GuestValues":[
{
"A": "value_a",
"B": "value_b",
"C": "value_c"
},
{
"A": "value_a",
"B": "value_b",
"C": "value_c"
},
{
"A": "value_a",
"B": "value_b",
"C": "value_c"
}
}
],
"TotalResults":1,
"MilliSeconds":11
}
我只想反序列化GuestValues数组.我创建了一个这样的类:
I want to deserialize only the GuestValues array. I created a class like this:
public class GuestValue
{
public string A;
public string B;
public string C;
}
public class GuestValueResult
{
public List<GuestValue> GuestValues { get; set; }
public in TotalResults { get; set; }
}
并这样称呼它:
GuestValueResult guestValues = JsonConvert.DeserializeObject<GuestValueResult>(jsongString);
但是它不起作用.我做了很多尝试,以某种方式,它只给我返回了jsonString中的第一个"A"
,"B"
,"C"
,而又返回了"GuestValues"
上方的那个,我并不需要那组数据.我只想要"GuestValues"
中的那些.请帮忙.
But it doesn't work. I tried a lot, once somehow, it only gives me back the first "A"
, "B"
, "C"
in the jsonString, the one above the "GuestValues"
, I don't want that group of data. I only want those inside "GuestValues"
. Please help.
推荐答案
您可以使用Linq to JSON(JSON.NET的一部分)访问相关节点,然后反序列化:
You can use Linq to JSON (part of JSON.NET) to access the relevant node, then deserialize it:
var root = JObject.Parse(jsonString);
var guestValues = root["Results"][0]["GuestValues"].ToObject<GuestValue[]>();
这篇关于在C#中反序列化json字符串(数组)的一部分的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文