在 C# 中解析 Json 字符串 [英] Parse Json string in C#

查看:50
本文介绍了在 C# 中解析 Json 字符串的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在尝试在 C# 中读取 Json 字符串,但我无法弄清楚如何将字符串解析为 C#.假设我有以下 Json 字符串

<预><代码>[{应用名称":{"Description": "Lorem ipsum dolor sat amet",值":1"},另一个应用程序名称":{"描述": "consectetur adipisicing 精英",值":字符串"},第三个应用程序名称":{"Description": "sed do eiusmod tempor incididunt ut laboure et dolore magna aliqua",值":文本"},应用": {"Description": "Ut enim ad minim veniam",价值":100"},上一个应用程序名称":{"Description": "quis nostrud exeritation ullamcolaboris nisi ut aliquip ex ea commodo consequat",值":ZZZ"}}]

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

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

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

解决方案

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

我更改了代码,使其支持读取您的 json 文件(数组)

要解析的代码:

void Main(){var json = System.IO.File.ReadAllText(@"d:	est.json");var objects = JArray.Parse(json);//解析为数组foreach(对象中的JObject根){foreach(KeyValuePair app in root){var appName = app.Key;var description = (String)app.Value["Description"];var value = (String)app.Value["Value"];Console.WriteLine(appName);Console.WriteLine(描述);Console.WriteLine(value);Console.WriteLine("
");}}}

输出:

应用名称Lorem ipsum dolor 坐 amet1另一个应用程序名称consectetur adipisicing 精英细绳第三个应用程序名称sed do eiusmod tempor incididunt ut labore et dolore magna aliqua文本应用Ut enim ad minim veniam100应用名称quis nostrud 练习 ullamco Laboris nisi ut aliquip ex ea commodo consequatZZZ

顺便说一句,您可以使用 LinqPad 来测试您的代码,比在 Visual Studio 中创建解决方案或项目更容易我想.

I'm trying to read a Json string in C#, but I'm having trouble figuring out just how to parse the string into C#. Say I have the following Json string

[
    {
        "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"
        }
    }
]

I want to parse that into an arraylist or dictionary, using a format like

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

I've been toying around with Json.Net but the examples I've seen don't give me a clear idea of how I should do this. What's the best way to achieve this? Cant this be done like in jQuery, using a foreach statement?

解决方案

I'm using Json.net in my project and it works great. In you case, you can do this to parse your json:

EDIT: I changed the code so it supports reading your json file (array)

Code to parse:

void Main()
{
    var json = System.IO.File.ReadAllText(@"d:	est.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("
");
        }
    }
}

Output:

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

BTW, you can use LinqPad to test your code, easier than creating a solution or project in Visual Studio I think.

这篇关于在 C# 中解析 Json 字符串的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆