C# 解析JSONObject

C# 解析JSONObject,c#,json,windows-runtime,C#,Json,Windows Runtime,我正试图从一个Web服务中获取JSON,这是我能够理解的。 顺便说一句,这是我的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",

我正试图从一个Web服务中获取JSON,这是我能够理解的。 顺便说一句,这是我的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作为其他两个属性,稍后我将尝试使用CollectionViewSource将其绑定到UI中的一个互动程序

现在这是JSON2Chardpdotcom正在生成的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:顺便说一句,我知道必须有一个字典,我首先在外循环上执行foreach来检索名称,在内循环上执行foreach来检索P1和P2

但我不知道应该在C#中使用什么类来使用JSON并用JSON创建集合项

我不知道应该在C#中使用什么类来使用JSON并从JSON中创建集合项

你不需要上课。就一点点,林克

我会用这个

编辑

使用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"]));
var jObj=JsonObject.Parse(json); var dict=jObj.Cast() .ToDictionary(j=>j.Key, j=>新元组(j.Value[“P1”],j.Value[“P2”]);
这看起来像C#,可能是.NET 4.5(由于
异步
),你能给它贴上这样的标签吗?嗨,我有这个问题。现在,我如何在dict上实现iObservable集合,并将其绑定到一系列文本块或按钮,使它们使用ToString显示每个对象Override@james234这是完全不同的问题。把它作为一个新问题发布怎么样。其他人可能会回答得更好。
foreach (var kv in dict)
{
    Console.WriteLine("{0}: {1} {2}", kv.Key, kv.Value.Item1, kv.Value.Item2);
}
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"]));