C#中对于json格式数据的处理

基本环境


vs2013
.NetFramework4.5
命名空间:using Newtonsoft.Json.Linq

 

 


Json字符串不知道key值如何获得value

 

//假设浏览器返回的数据如下:
    string response={"672": 
        {"id": "672", 
        "level":0,
        "children":[
        "b9185a050d0540fea32cdd6fdf5e0d7d",
        "727dc5216f504174a30475f268a616f8",
        "57c8e7da25a34bee832d8fd2cfeed5c1"]
        }
    }12345678910

但是我们不知道“672”这个key的值,他是浏览器随机返回的,这种情况,可以采用如下的方式,使用JProperty:

 

JObject json = JObject.Parse(response); 

//得到json对应的propertyies,实际是一个<key,value>
对象组成的数组,可以遍历和获得value的值
IEnumerable<JProperty> properties = json.Properties(); 

// 遍历Jproperty对象
foreach(JProperty item in properties) 
{
   //得到value并转化为object对象,得到子json
   JObject node = JObject.Parse(item.Value.ToString()); 

}12345678910111213

 

获得Json字符串中的数组

同样是上文中的response,由于children是一个数组,可以采用JToken对象获得数组对象并进行遍历;代码如下(接上文代码):

 

JToken children =node["children"];
foreach(JProperty child in children)
{
   // 即可得到字符串"b9185a050d0540fea32cdd6fdf5e0d7d"等
   string name = (string)child;
}
--------------------- 

原文:https://blog.csdn.net/pinebud55/article/details/51509447 
 

回答: 在C#,可以使用JsonConvert类来处理JSON格式数据。引用\[1\]的代码展示了将一组JSON格式数据转换为字符串进行显示的方法。首先,需要引入Newtonsoft.Json命名空间,并使用JsonConvert.DeserializeObject方法将JSON字符串转换为对象。然后,可以通过对象的属性来获取相应的值。例如,可以使用m.Name来获取Name属性的值。引用\[2\]的代码展示了处理嵌套格式JSON数据的方法。同样地,可以使用JsonConvert.DeserializeObject方法将JSON字符串转换为JObject对象,然后通过索引来获取嵌套属性的值。引用\[3\]的代码展示了使用DataContractJsonSerializer类来处理JSON格式数据的方法。首先,需要定义一个包含属性的类,并使用DataContractJsonSerializer类进行序列化和反序列化操作。通过将对象写入MemoryStream并将其转换为字符串,可以将对象转换为JSON格式的字符串。然后,可以使用DataContractJsonSerializer类的ReadObject方法将JSON字符串转换回对象。 #### 引用[.reference_title] - *1* [C#处理JSON格式数据](https://blog.csdn.net/zls365365/article/details/123321137)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down28v1,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* *3* [C#解析json文件的方法](https://blog.csdn.net/u011555996/article/details/107348495)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down28v1,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值