【问题标题】:Read all dynamic name and value from JSON string从 JSON 字符串中读取所有动态名称和值
【发布时间】:2013-09-06 08:18:06
【问题描述】:

我需要从 JSON 字符串中获取所有动态名称和值。我将创建一个带有 JSON 字符串参数的函数。该参数 JSON 字符串名称和值可以更改,但我需要打印该 JSON 字符串中的所有名称和值。

示例代码:

json : {   "data": 
       [{
         "id": "001",
         "Name": "Somu",
         "Address": "Erode",
        },
        {
         "id": "002",
         "Name": "Ajal",
         "Address": "USA",
        }]
       }

我想用 in 循环从这个 JSON 中获取所有值。属性名称可能会更改或增加属性计数。我需要从传递的 JSON 中获取所有值。

 Expected Result :  1 st loop
            Id = 001
            Name =Somu
            Address =Erode
         2 nd loop
            Id = 002
            Name =Ajal
            Address =USA

【问题讨论】:

  • 您使用的是什么序列化程序?还是您可以灵活使用? IIRC 这在 json.net 中比通过 JavaScriptSerializer 之类的东西要容易得多

标签: c# json


【解决方案1】:

使用Json.Net

string json = @"{ ""data"": [ { ""id"": ""001"", ""Name"": ""Somu"", ""Address"": ""Erode"", }, { ""id"": ""002"", ""Name"": ""Ajal"", ""Address"": ""USA"", }] }";

var result  = JObject.Parse(json)
                ["data"]
                .Select(x => new
                {
                    id = (string)x["id"],
                    Name = (string)x["Name"],
                    Address = (string)x["Address"],
                })
                .ToList();

或更多动态版本

var result  = JObject.Parse(json)
                ["data"]
                .Select(x=> x.Children().Cast<JProperty>()
                             .ToDictionary(p=>p.Name,p=>(string)p.Value))
                .ToList();

.

var result = JObject.Parse(json)["data"]
                    .ToObject<List<Dictionary<string,string>>>();

【讨论】:

  • 我预计只有第二个。如何通过循环读取结果值
猜你喜欢
  • 1970-01-01
  • 2016-09-02
  • 1970-01-01
  • 1970-01-01
  • 2018-12-11
  • 2012-07-28
  • 1970-01-01
  • 2013-06-18
  • 1970-01-01
相关资源
最近更新 更多