小隐的博客

人生在世,笑饮一生
  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

Newtonsoft 获取动态key的json数据

Posted on 2010-02-03 15:21  隐客  阅读(1042)  评论(0编辑  收藏  举报

在反序列化一些json数据的过程中,有些数据根本没有办法反序列化,因为json数据的key值是动态的,另外还有一些key值是数字的,也没有办法反序列化到c# 类。

 

反序列化是没希望,但总可以读出来吧,寒, 要不然就要换掉Newtonsoft了。

 

举例:


 

代码
            string str = "{\"3\":123,body:456,list:{title:'abc',body:'what'}}";
            JObject o 
= JObject.Parse(str);
            IEnumerable
<JProperty> properties = o.Properties();
            
foreach (JProperty item in properties)
            {
                Console.WriteLine(item.Name 
+ ":" + item.Value);
            }

 

 如果str 是个数组,则可以相应用JArray a = JArray.Parse(str); 来处理,不过目前还不知道无限包含子集怎么处理。

比如 

string str = "{\"3\":123,body:456,list:{title:'abc',body:{a:{a:{a:{a:{a:'......'}}}}}}}"; 

 

网上资料甚少,官方那个Quick Starts看了晕,除了一大堆的声明,未见实质的sample,要看声明,难道要看它的这个帮助文档?右键--转到定义,不就可以了吗? 

  

 

 

 

 

 

 

 

QQ交流