2015-10-21 2 views
0

Как сериализовать Словарь на объект JSonСоздание объектов из словаря с Json

var dict = new Dictionary<string, string>() 
     { 
      {"Username", "{Username}"}, 
      {"FirstName", "{FirstName}"}, 
      {"LastName", "{LastName}"}, 
      {"AccountMeta[0].MetaKey", "Pincode"}, 
      {"AccountMeta[0].MetaValue", "150000"}, 

     }; 
public class Account { 
    public string Username {get;set;} 
    public string FirstName{get;set;} 
    public string LastName {get;set;} 
    public List<AccountMeta> AccountMeta {get;set;} 
} 

И объекты:

public class AccountMeta{ 
    public string MetaKey {get;set;} 
    public string MetaValue{get;set;} 
} 
+1

Возможные дубликатом [Serialize .NET Dictionary <строка, строка> в JSON Key Value Pair Object] (http://stackoverflow.com/questions/5124889/serialize-net-dictionarystring-string-into-json-key-value-pair-object) –

+0

Это не дубликат. AccountMeta - это список. AccountMeta [0] .MetaKey AccountMeta [1] .MetaKey –

+0

@GiviBibileishvili, так что вы хотите сериализовать список в словаре? – alstonp

ответ

1

Используйте библиотеку Newtonsoft.Jsonhere

Управляет сериализации любого рода объектов изящно и бесплатно.

Формат Json обеспечивает стандартный способ сериализации массивов и объектов, не поддерживаемых объектами, и не поддерживает пути объектов. Так что ваш сериализации Подход списки как "List[index]" = "value" и свойства объекта, как "Object.Property" = "Value" стиль не будет работать

Установите пакет: Newtonsoft.Json Пример использования:

Dictionary<string, string> dictionary = ...; 
string Json = Newtonsoft.Json.JsonConvert.SerializeObject(dictionary); 

MyClass Result = Newtonsoft.Json.JsonConvert.DeserializeObject<MyClass >(); 
Смежные вопросы