c# - 在 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"
        }
    }
]

我想将其解析为数组列表或字典,使用类似的格式

descriptionList["AppName"] = "Lorem ipsum dolor sit amet";
valueList["AppName"] = "1";

我一直在玩弄 Json.Net,但我看到的例子并没有让我清楚地知道我应该如何做到这一点。实现这一目标的最佳方法是什么?这不能像在 jQuery 中那样使用 foreach 语句来完成吗?

最佳答案

我在我的项目中使用 Json.net,效果很好。在你的情况下,你可以这样做来解析你的 json:

编辑:我更改了代码,使其支持读取您的 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 中创建解决方案或项目更容易。

https://stackoverflow.com/questions/12676746/

相关文章:

java - Gson:@Expose 与 @SerializedName

ruby-on-rails - 设计 API 身份验证

javascript - 在输入隐藏字段中存储返回 json 值

javascript - 将 JSON 字符串转换为 Javascript 数组

php - PHP中的序列化或json?

java - 如何使用 @ResponseBody 从 Spring Controller 返回 J

java - 在 JSON 对象中解析 JSON 数组

jquery - getJSON 到 console.log() 输出 json 结构

json - PostgreSQL 中 JSON 数据类型的大小限制

json - 使用 JSON 协议(protocol)处理版本控制的最佳方法是什么?