在C#中反序列化json字符串(数组)的一部分 [英] deserialize part of json string (array) in c#

查看:102
本文介绍了在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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆