在C#中解析Json字符串
我正在尝试在C#中读取Json字符串,但是在弄清楚如何将字符串解析为C#时遇到了麻烦。说我有以下Json字符串
[ {
"AppName": {
"Description": "Lorem ipsum dolor sit amet",
"Value": "1"
},
"AnotherAppName": {
"Description": "consectetur adipisicing elit",
"Value": "String"
},
"ThirdAppName": {
"Description": "sed do eiusmod tempor incididunt ut labore et dolore magna aliqua",
"Value": "Text"
},
"Application": {
"Description": "Ut enim ad minim veniam",
"Value": "100"
},
"LastAppName": {
"Description": "quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat",
"Value": "ZZZ"
}
}
]
我想使用以下格式将其解析为arraylist或字典
descriptionList["AppName"] = "Lorem ipsum dolor sit amet";valueList["AppName"] = "1";
我一直在玩Json.Net,但是我所看到的示例并不能使我清楚地知道应该如何做。实现此目标的最佳方法是什么?难道这像在jQuery中一样使用foreach语句完成?
回答:
我在项目中使用Json.net,效果很好。在这种情况下,您可以执行以下操作来解析json:
解析代码:
void Main(){
var json = System.IO.File.ReadAllText(@"d:\test.json");
var objects = JArray.Parse(json); // parse as array
foreach(JObject root in objects)
{
foreach(KeyValuePair<String, JToken> app in root)
{
var appName = app.Key;
var description = (String)app.Value["Description"];
var value = (String)app.Value["Value"];
Console.WriteLine(appName);
Console.WriteLine(description);
Console.WriteLine(value);
Console.WriteLine("\n");
}
}
}
输出:
AppNameLorem ipsum dolor sit amet
1
AnotherAppName
consectetur adipisicing elit
String
ThirdAppName
sed do eiusmod tempor incididunt ut labore et dolore magna aliqua
Text
Application
Ut enim ad minim veniam
100
LastAppName
quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat
ZZZ
顺便说一句,您可以使用LinqPad来测试代码,这比在我认为的Visual
Studio中创建解决方案或项目更容易。
以上是 在C#中解析Json字符串 的全部内容, 来源链接: utcz.com/qa/434593.html