qq_36459129
稍稍有些冷
采纳率55.6%
2017-05-26 02:53 阅读 5.3k

如何使用Newtonsoft.NET将JSON数组转化成C#匿名类集合?

JSON数组:[{'count':1,'no':'000001'},{'count':1,'no':'000001'}]
创建了一个匿名类:
var dt = new{
count = 0,
no = ""
}
使用JsonConvert.DeserializeAnonymousType反序列化怎么
得到匿名对象集合?

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 复制链接分享

3条回答 默认 最新

  • 已采纳
    trfftrff 努力的阿牛 2017-05-26 09:58
                string jsonString = @"[{'count':1,'no':'000001'},{'count':1,'no':'000001'}]";
                dynamic json = Newtonsoft.Json.Linq.JToken.Parse(jsonString) as dynamic;
                foreach (var item in json)
                {
                    Console.WriteLine($"count:{item.count},no:{item.no}");
                }
    

    运行结果

    点赞 2 评论 复制链接分享
  • showbo GoCityPass新加坡曼谷通票 2017-05-26 03:12
         public class MyCls { public int count; public string no;}
    
    
    ===》
            string s = "[{'count':1,'no':'000001'},{'count':2,'no':'000002'}]";
            System.Collections.Generic.List<MyCls> list = Newtonsoft.Json.JsonConvert.DeserializeObject<System.Collections.Generic.List<MyCls>>(s);
            foreach (MyCls o in list) Response.Write(o.count + "|" + o.no+"<BR>");
    
    点赞 1 评论 复制链接分享
  • trfftrff 努力的阿牛 2017-05-26 09:45

    匿名类的属性是只读的。要动态解析json,可以换种方法。Newtonsoft.NET里可以将JSON字符串转换为成JObject对象,并强制转换为动态类型dynamic 。也达到你想要的效果。

                var jsonString = @"{""Name"":""小苹果"",""Company"":""韩国公司"",   ""Entered"":""2016-11-26 00:14""}";
    
                dynamic json = Newtonsoft.Json.Linq.JToken.Parse(jsonString) as dynamic; 
    
                string name = json.Name;
                string company = json.Company;
                DateTime entered = json.Entered;
                Console.WriteLine("name:"+name);
                Console.WriteLine("company:" + company);
                Console.WriteLine("entered:" + entered);
    
    点赞 评论 复制链接分享

相关推荐