Как десериализовать с помощью JSON.NET? - PullRequest
4 голосов
/ 19 июня 2011

Как настроить Newtonsoft Json.net для десериализации этого текста в объект .NET?

[
    [
        "US\/Hawaii", 
        "GMT-10:00 - Hawaii"
    ], 
    [
        "US\/Alaska", 
        "GMT-09:00 - Alaska"
    ], 
]

Для бонусных баллов, что такое структура называется в Json.Я пытался найти анонимные объекты, но безуспешно.

Ответы [ 3 ]

6 голосов
/ 19 июня 2011

Эта строка JSON (или почти она будет действительным JSON после того, как вы исправите ее и удалите запятую, поскольку сейчас она недопустима) представляет массив массивов строк. Его можно легко десериализовать в string[][] с помощью встроенного в .NET JavaScriptSerializer класса:

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 голосов
/ 19 июня 2011

JSON.Net использует JArray, чтобы разрешить их анализировать - см .:

0 голосов
/ 22 июня 2011

Чтобы увидеть запись в блоге, подробно описывающую, как сериализовать и десериализовать между .NET и JSON, проверьте это .Я нашел это действительно полезным.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...