在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");

}

}

}

输出:

AppName

Lorem 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

回到顶部