Нужна помощь по десериализации словаря Json в WPF - PullRequest
2 голосов
/ 16 августа 2011

Я пытаюсь разобрать строку Json и поместить раздел в словарь. Я сталкиваюсь с проблемой, когда при попытке десериализации в словарь ожидаются термины «ключ» и «значение», которые мне недоступны. Кто-нибудь может порекомендовать обходной путь для меня, пожалуйста? Я предпочитаю придерживаться DataContractJsonSerializer, если это возможно. Заранее большое спасибо.

{ «коробки»: 2, "коробка": [ { "яблоки": "6", "бананы": "3", "апельсины": "4", "лимоны": "2" }, { "персики": "4", «лаймы»: «5», "дыни": "5", "яблоки": "2" } ] }

Ответы [ 3 ]

0 голосов
/ 16 августа 2011

Существует также библиотека сериализации JSON, поставляемая с драйвером C # для MongoDB.Вы можете начать читать об этом здесь

0 голосов
/ 16 августа 2011

Вы также можете использовать быстрый и легкий Сериализатор Json ServiceStack , чтобы обработать это для вас, он позволяет десериализовать строго типизированные POCO или динамически, используя JsonObject:

Используя Strong-TypedPOCO

var fruitsJson = "{ \"boxes\": 2, \"box\": [ { \"apples\": \"6\", \"bananas\": \"3\", \"oranges\": \"4\", \"lemons\": \"2\" }, { \"peaches\": \"4\", \"limes\": \"5\", \"melons\": \"5\", \"apples\": \"2\" } ] }";

public class Fruits
{
    public int boxes { get; set; }
    public List<Dictionary<string,string>> box { get; set; }
}

var fruits = fruitsJson.FromJson<Fruits>();

Динамически с использованием JsonObject

var jsonObj = JsonObject.Parse(fruitsJson);
var boxes = jsonObj["boxes"];
var box = jsonObj["box"].FromJson<List<Dictionary<string,string>>>();
0 голосов
/ 16 августа 2011

Я настоятельно рекомендую изучить JSON.NET .Это полнофункциональная и надежная библиотека, которая, на мой взгляд, является наилучшим способом обработки JSON в любом приложении .NET.

...