C# 使用 JavaScriptSerializer.DeserializeObject 反序列化 JSON

标签 c# json serialization

我不是 C# 程序员,但有时会玩弄这种语言。我想知道,如果我有一个我想使用 JavaScriptSerializer.DeserializeObject 反序列化的 JSON 字符串,我怎么能那样。例如,如果我有一个 JSON:

{
    "Name": "col_name2",
    "Value": [
        {
            "From": 100,
            "To": 200
        },
        {
            "From": 100,
            "To": 200
        }
    ]
}

我在一个名为 sJson 的变量中有那个 JSON 字符串:

using System.Web.Script.Serialization;
...

JavaScriptSerializer jss = new JavaScriptSerializer();
Object json = jss.DeserializeObject(sJson);

现在我该如何使用这个 Object json变量?

注意:我已经知道如何使用 System.Web.Script.Serialization.Deserialize<T> 来做到这一点方法。

最佳答案

查看此帖子以获取 Davids 的答案:

Deserialize json object into dynamic object using Json.net

你可以把它变成动态的(底层类型是JObject) 然后您可以像这样访问信息:

JavaScriptSerializer jss = new JavaScriptSerializer();
dynamic json = jss.DeserializeObject(sJson);
Console.WriteLine(json["Name"]); // use as Dictionary

我更愿意创建一个数据传输对象 ( DTO ),将您的 JSON 结构表示为一个 C# 类。

关于C# 使用 JavaScriptSerializer.DeserializeObject 反序列化 JSON,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45912964/

相关文章:

c# - 在 C# 中使用 Gembox.Pdf 打印 pdf 时,打印队列中的 documentName 始终为 'XPS Document'

c# - 使用 Cmd Prompt 将 DateTime 变量传递给控制台应用程序

java - 特殊字符破坏Json

java - 包含 Map 空值的 Jackson 序列化

c# - 使用 SixLabors ImageSharp 检测图片格式

c# - 如何在 XAML 中访问我的 ListBox 的 DataTemplate(但不是绑定(bind))中的 TextBlock?

python - Django REST 框架 : how to substitute null with empty string?

python - HTML 和 BeautifulSoup : how to iteratively parse when the structure is not always known beforehand?

c# - 将未命名的json数组反序列化为c#中的对象

.net - 为什么.net通用字典这么大