2016-02-09 6 views
1

Я генерирую ниже формат JSON, может кто-то сказать мне, как преобразовать его обратно в мой класс.Преобразуйте этот формат JSON с помощью конвертера JSON

["Node1",{"DictionaryNode1_1":"NodeValue1","DictionaryNode1_2":"NodeValue2","DictionaryNode1_3":"NodeValue3"},["Node11",{"DictionaryNode11_1":"NodeValue1","DictionaryNode11_2":"NodeValue2","DictionaryNode11_3":"NodeValue3"},"Node12",null,["Node121",null,["Node1211",{"DictionaryNode1211_1":"NodeValue1","DictionaryNode1211_2":"NodeValue2","DictionaryNode1211_3":"NodeValue3"}]]],"Node2",null,["Node21","Node22"]] 

enter image description here

Как я этого добиться, используя метод ниже преобразователя.

public override object ReadJson(JsonReader reader, Type objectType, object existingValue, JsonSerializer serializer) 
{ 
} 

Ниже приведен список для преобразования.

[JsonConverter(typeof(TreeNodeConverter))] 
public class SubTreeNode : TreeNode 
{ 
    private Dictionary<string, string> _dicAttr; 

    public Dictionary<string,string> dicAttr 
    { 
     get 
     { 
      return _dicAttr; 
     } 
     set 
     { 
      _dicAttr = value; 
     } 
    } 
} 

ответ

2

Вы можете использовать JSON.NET завершить практически любые операции над JSON сериализованными строк. Таким образом, для вашего образца, если я понимаю вас правильно, вам просто нужно десериализация строки Dictionary<string,string> (или Dictionary<string,Dictionary<string, string>> ...) типа так вот некоторые темы для рассмотрения:
- Deserialize to Object
- Or you can deserialize to dynamic and do whatever you like after it (for C# 4 and one of the latest Json.NET versions)
- Querying JSON with dynamic

Вот пример из Json.NET с десериализации до dynamic:

string json = @"[ 
    { 
    'Title': 'Json.NET is awesome!', 
    'Author': { 
     'Name': 'James Newton-King', 
     'Twitter': '@JamesNK', 
     'Picture': '/jamesnk.png' 
    }, 
    'Date': '2013-01-23T19:30:00', 
    'BodyHtml': '&lt;h3&gt;Title!&lt;/h3&gt;\r\n&lt;p&gt;Content!&lt;/p&gt;' 
    } 
]"; 

dynamic blogPosts = JArray.Parse(json); 

dynamic blogPost = blogPosts[0]; 

string title = blogPost.Title; 

Console.WriteLine(title); 
// Json.NET is awesome! 

string author = blogPost.Author.Name; 

Console.WriteLine(author); 
// James Newton-King 

DateTime postDate = blogPost.Date; 

Console.WriteLine(postDate); 
// 23/01/2013 7:30:00 p.m. 
0

Вы должны проверить JSON.NET. Он имеет очень хорошую документацию, и это, безусловно, будет полезно для всех ваших потребностей в работе с json.

Вот ссылка Json.net

А вот documentation