本文介绍了解析的JSONObject的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我想获得JSON从一个Web服务,这我能弄清楚。
顺便说一句这是我的JSON数据 -

  {
X-YZ-111 / AB.CD :{
P1:F
P2:43.46
},

的X-YZ-112 / AB.CD :{
P1:F
P2:8.02
},
的X-YZ-113 / AB.CD:{
P1:F
P2:9066.58
},
的X-YZ-114 / AB.CD:{
P1:F
P2:6.00
},
的X-YZ-115 / AB.CD:{
P1: F
P2:6.00
},
的X-YZ-116 / AB.CD:{
P1:F
P2:10.00
}


使用Windows.Data.Json;

私人异步无效getJSON_click(对象发件人,RoutedEventArgs E)

{
VAR的客户=新的HttpClient();
client.MaxResponseBufferSize = 1024 * 1024;
VAR响应=等待Client.GetAsync(新的URI(这个网址));
VAR的结果=等待response.Content.ReadAsStringAsync();

无功分量= JsonObject.Parse(结果);

}

现在我能够尝试将其解析为一个集合,其中每个项目都有X-YZ-111 / AB.CD作为名称,属性和P1和P2其他2个属性,我会尝试绑定到以后使用CollectionViewSource在UI平铺。



现在这是C#类Json2CShardpDotCom正在生成

 公共类名称
{
公共字符串类型{搞定;组; }
公共字符串的Val {获得;组; }
}

公共类根
{
公共名称名称{;组; }
}



使用的foreach什么班我就如何通过这些价值循环任何建议?在C#中应



编辑1:BTW,我知道必须有一个字典我第一次做外环一个foreach来检索内环的名称和foreach检索P1和P2。



不过,我很困惑就一下班我应该用在C#中使用JSON并创建集合项目从我的JSON


解决方案

You don't need any class. Just a little bit Linq

I would use Json.Net for this

var jObj = JObject.Parse(result);
var dict = jObj.Children()
           .Cast<JProperty>()
           .ToDictionary(p => p.Name, 
                         p => new Tuple<string, string>((string)p.Value["P1"], (string)p.Value["P2"]));

That is all. Sample usage would be:


foreach (var kv in dict)
{
    Console.WriteLine("{0}: {1} {2}", kv.Key, kv.Value.Item1, kv.Value.Item2);
}

EDIT

Same code using JsonObject

var jObj = JsonObject.Parse(json);
var dict = jObj.Cast<KeyValuePair<string, JsonValue>>()
           .ToDictionary(j=>j.Key,
                         j=>new Tuple<string,string>(j.Value["P1"],j.Value["P2"]));

这篇关于解析的JSONObject的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

10-19 01:58