如何仅从JSON过滤数组

时间:2016-04-28 08:24:22

标签: c# json

我的JSON字符串如下,

{  
   "Data":[  
      {  
         "id":"1",
         "Name":"Sachin"
      },
      {  
         "id":"2",
         "Name":"Rahul"
      },
      {  
         "id":"3",
         "Name":"Sovrav"
      }
   ]
}

现在,我想从该JSON字符串中仅过滤数组,并将它们存储在另一个变量中,结果应该是这样的

[  
      {  
         "id":"1",
         "Name":"Sachin"
      },
      {  
         "id":"2",
         "Name":"Rahul"
      },
      {  
         "id":"3",
         "Name":"Sovrav"
      }
   ]

请帮帮我

2 个答案:

答案 0 :(得分:1)

您是否考虑过Newtonsoft.JSon - Nuget Package Link

在Newtonsoft之后你可以这样做:

创建模型以反序列化您的JSON

public class DataJson {
    List<PersonJson> Data { get; set; }
}

public class PersonJson {
    public int id { get; set; }
    public string Name { get; set; }
}

轻松反序列化您的Json对象:
JsonConvert.DeserializeObject(JSON);

对于类似的问题,您可以在此处查看:Deserializing JSON Object Array with Json.net

用于搜索更多信息的一些关键字将是:Deserialize,Json,C#

答案 1 :(得分:0)

使用Json.NET并反序列化对象并仅序列化列表。

public class Datum
{
    public string id { get; set; }
    public string Name { get; set; }
}

public class RootObject
{
    public List<Datum> Data { get; set; }
} 

static void Main()
{
    string json = "{   \"Data\":[ { \"id\":\"1\", \"Name\":\"Sachin\" }, { \"id\":\"2\", \"Name\":\"Rahul\" }, { \"id\":\"3\", \"Name\":\"Sovrav\" } ] }";

    RootObject ro = JsonConvert.DeserializeObject<RootObject>(json);

    string newJson = JsonConvert.SerializeObject(ro.Data);
}

newJson包含:

  

[{&#34; ID&#34;:&#34; 1&#34;&#34;名称&#34;:&#34;萨钦&#34;},{&#34; ID&#34 ;:&#34; 2&#34;&#34;名称&#34;:&#34;的Rahul&#34;},{&#34; ID&#34;:&#34; 3&#34;,& #34;名称&#34;:&#34; Sovrav&#34;}]