如何使用 JSON.NET 进行反序列化?

4
如何设置Newtonsoft Json.net将此文本反序列化为.NET对象?
[
    [
        "US\/Hawaii", 
        "GMT-10:00 - Hawaii"
    ], 
    [
        "US\/Alaska", 
        "GMT-09:00 - Alaska"
    ], 
]

对于加分项,Json 中这种结构被称为什么?我尝试查找匿名对象,但没有成功。

你是在寻找将数据反序列化为自定义对象类型,还是只是一个 JSON “DOM”?DOM 可能更容易,因为它不需要对 JSON 模式进行任何更改,而“序列化”API 往往比较挑剔。 - Merlyn Morgan-Graham
DOM 对我来说很好。 - Jake Pearson
3个回答

6

这个JSON字符串(或者准确地说,修复掉尾部的逗号后它就是一个合法的JSON字符串)表示了一组字符串数组。可以使用内置的.NET JavaScriptSerializer类将其轻松反序列化为string[][]

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

class Program
{

    static void Main()
    {
        var json = 
@"[
    [
        ""US\/Hawaii"", 
        ""GMT-10:00 - Hawaii""
    ], 
    [
        ""US\/Alaska"", 
        ""GMT-09:00 - Alaska""
    ]
]";
        var serializer = new JavaScriptSerializer();
        var result = serializer.Deserialize<string[][]>(json);
        foreach (var item in result)
        {
            foreach (var element in item)
            {
                Console.WriteLine(element);
            }
        }
    }
}

使用JSON.NET,可以通过以下方式实现完全相同的结果:

var result = JsonConvert.DeserializeObject<string[][]>(json);

5

0

查看一篇博客文章,详细介绍了如何在 .NET 和 JSON 之间进行序列化和反序列化,请看这里。我发现它非常有帮助。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接