C# 解析JSONObject
我正试图从一个Web服务中获取JSON,这是我能够理解的。 顺便说一句,这是我的JSON数据-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",
{
"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"]));