c# - 在c#中反序列化部分json字符串(数组)

标签 c# json

我有一个像这样的 json 字符串:

{  
"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 数组。我创建了一个这样的类:

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" 中的那些。请帮忙。

最佳答案

您可以使用 Linq to JSON(JSON.NET 的一部分)访问相关节点,然后反序列化它:

var root = JObject.Parse(jsonString);
var guestValues = root["Results"][0]["GuestValues"].ToObject<GuestValue[]>();

关于c# - 在c#中反序列化部分json字符串(数组),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37335030/

相关文章:

C# 通过强制转换运算符进行动态转换

c# - ASP.NET Core 2.1 - 身份验证 cookie 已删除,但用户仍可登录而无需重定向到外部登录

c# - 使用双引号和参数添加到查询

Play Framework 2.1 RC1 中的 AJAX 文件上传传送一个空文件

javascript - 根据其嵌套数组值过滤数组

python - 如何在Python中将多级别的API响应转换为数据帧

c# - Ajax.beginform 提交时会在 asp.net mvc 的数据库中创建多个条目

c# - 以编程方式从剪贴板粘贴文件 : Copy or Move?

java - 字符串值无法转换为 JSONArray

javascript - 提高使用 jQuery 搜索 JSON 对象的性能