解析JSONObject

我试图从Web服务中获取JSON,我能够弄清楚。 BTW这是我的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" }} Using Windows.Data.Json; private async void getJSON_click(object sender,RoutedEventArgs e) { var client=new HttpClient(); client.MaxResponseBufferSize=1024*1024; var response= await Client.GetAsync(new Uri(The URL here)); var result = await response.Content.ReadAsStringAsync(); var component=JsonObject.Parse(result); } 

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

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

 public class Name { public string Type { get; set; } public string Val { get; set; } } public class Root { public Name Name { get; set; } } 

有关如何使用foreach循环这些值以及我应该在C#中创建哪些类的任何建议?

编辑1:BTW我知道必须有一个字典,我首先在外循环上执行foreach以检索内部循环上的Name和foreach以检索P1和P2。

但我很困惑我应该在C#中使用哪些类来使用JSON并使用我的JSON创建集合项

我很困惑我应该在C#中使用哪些类来使用JSON并使用我的JSON创建集合项

你不需要任何课程。 只是一点点Linq

我会用Json.Net来做这件事

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

就这些。 示例用法是:


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

编辑

使用JsonObject的相同代码

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