从嵌套的json字符串中检索特定数据

问题描述 投票:-2回答:2

我有一块JSON如下:

{
    "FirstName": "JON",
    "LastName": "BAYN",
    "Data": [
        {
            "Plan": "DAY"
        }
    ]
}

我使用JavaScriptSerializer构建它

JavaScriptSerializer serializer_user = new JavaScriptSerializer();
                            dynamic jsonObject = serializer_user.Deserialize<dynamic>(content_);

dynamic firstname = jsonObject["FirstName"];
firstname = jsonObject["FirstName"];

但我无法从嵌套的“详细信息”>>“计划”中读取。我一直无法拼凑如何实现这一目标。

c# json javascriptserializer
2个回答
2
投票

首先,为您的json模式创建模型类:

public class Rootobject
{
    public string FirstName { get; set; }
    public string LastName { get; set; }
    public string Gender { get; set; }
    public int MemberID { get; set; }
    public Detail[] Details { get; set; }
}

public class Detail
{
    public string Plan { get; set; }
    public string Product { get; set; }
    public DateTime ProductStartDate { get; set; }
    public DateTime ProductEndDate { get; set; }
    public string Flag { get; set; }
}

现在你可以将你的json字符串反序列化为RootObject(使用Json.NET而不是JavaScriptSerializer,因为它是faster etc):

using Newtonsoft.Json;
..
// If Json.NET is not option:
// var obj = new JavaScriptSerializer().Deserialize<Rootobject>(json)
var obj = JsonConvert.DeserializeObject<Rootobject>(json);

现在您可以访问以下对象结构:

if (obj.Details != null)
{
    foreach (var detail in obj.Details)
    {
        Console.WriteLine(detail.Plan);
    }
}

0
投票

如果你不想为它创建新的类并反序列化它,你可以只做一个正则表达式。

© www.soinside.com 2019 - 2024. All rights reserved.