如何将下面的JSON转换为C#POCO对象

如何将下面的JSON转换为C#POCO对象,c#,json,deserialization,json-deserialization,poco,C#,Json,Deserialization,Json Deserialization,Poco,我想将上面的json转换为C#POCO对象,如下所示 [ { "_id" : "BrownHair", "Count" : 1 }, {"_id" : "BlackHair" , "Count" : 5}, {"_id" : "WhiteHair" , "Count" : 15} ] 请注意,我不能更改P

我想将上面的json转换为C#POCO对象,如下所示

[
  { "_id" : "BrownHair", "Count" : 1 },
  {"_id" : "BlackHair" , "Count" : 5},
  {"_id" : "WhiteHair" , "Count" : 15}
]

请注意,我不能更改POCO和JSON的结构。

我会使用以下内容:

 public class HairColors
    {
        public int BrownHair { get; set; }
        public int BlackHair { get; set; }
        public int WhiteHair { get; set; }       
    }
公共类MyArray{
公共字符串_id{get;set;}
公共整数计数{get;set;}
}
公共类根{
公共列表MyArray{get;set;}
}
用法:

public class MyArray    {
    public string _id { get; set; } 
    public int Count { get; set; } 
}

public class Root    {
    public List<MyArray> MyArray { get; set; } 
}
//根myDeserializedClass=JsonConvert.DeserializeObject(myJsonResponse);

在这种情况下,将是您最好的朋友。

您可以使用JObject进行一些自定义解析


字典对你有用吗?应该对你有帮助你控制哪些部分?你能改变Json的结构吗?您能否改变POCO的结构?两个人都必须像现在这样吗?提问,因为你可以通过以下三种方式之一解决这个问题:1。改变JSON,2。改变POCO,3。提出一些解析代码来“翻译”稍微不兼容的结构。请注意,在后一种情况下,您可能还需要自定义序列化代码。POCO和Json都不能更改。这是答案的重要部分。我把它添加到你的问题中。。。。然后将
\u id
与POCO的属性相匹配。。。不漂亮,但应该管用@赞成!一点也不漂亮,如果我可以更改类,我更愿意使用Salah描述的解决方案。但我不会引入两个新类来反序列化和映射到对象。
// Root myDeserializedClass = JsonConvert.DeserializeObject<Root>(myJsonResponse); 
        string json = "[\r\n  { \"_id\" : \"BrownHair\", \"Count\" : 1 },\r\n  {\"_id\" : \"BlackHair\" , \"Count\" : 5},\r\n  {\"_id\" : \"WhiteHair\" , \"Count\" : 15}\r\n]";

        var jobjects = JArray.Parse(json);
        foreach(var item in jobjects) {
            // Map them here
            Console.WriteLine(item["_id"]);
            Console.WriteLine(item["Count"]);
        }
// Output
//BrownHair
//1
//BlackHair
//5
//WhiteHair
15