2016-02-18 3 views
0

У меня есть строка JSON, которая содержит как словарь, так и список. Для синтаксического анализа существует функция, которая преобразует тип списка из строки JSON в словарь. Мне нужно написать функцию, которая преобразует тип словаря в тип списка. Каким будет самый эффективный способ сделать это?Преобразование словаря в комплекс Json в список <string>

Например ...

Пусть это мой пример JSON строка -

"{\"foo1\":{\"0\":\"0\",\"1\":\"S\",\"2\":\"S\",\"3\":\"J\",\"4\":\"Q\",\"5\":\"X\",\"6\":\"M\"},\"foo2\":{\"1\":\"one\" ,\"2\":\"two\",\"4\":\"four\",\"5\":\"five\",\"6\":\"six\",\"7\":\"seven\",\"8\":\"eight\"}" 

Какой эффективный способ взять словарные значения здесь и преобразовывать их в список строк.

+1

http://stackoverflow.com/questions/11470305/convert-dictionarystring-int-into-listobject – krichalka

ответ

1
using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Text; 

namespace ConsoleApplication11 
{ 
    class Program 
    { 

     static void Main(string[] args) 
     { 
      string JSONIncludeBackslash = "{\"foo1\":{\"0\":\"0\",\"2\":\"S\",\"3\":\"J\",\"4\":\"Q\",\"5\":\"X\",\"6\":\"M\"},\"foo2\":{\"1\":\"one\",\"7\":\"seven\",\"8\":\"eight\"}}"; 
      Dictionary<string, string> JSONDictionary = JSONIncludeBackslash.Replace("\"", "").Replace(":{", "*").Replace("},", ",").Replace("}}", "").Replace("{", "").Replace("}", "").Split(',').ToDictionary(value => { return value.Split(':')[0].IndexOf("*") > -1 ? value.Split(':')[0].Split('*')[1] : value.Split(':')[0]; }); 

      Dictionary<string, string> JSONDictionary1 = JSONIncludeBackslash.Replace("\"", "").Replace(":{", "*").Replace("},", ",").Replace("}}", "").Replace("{", "").Replace("}", "").Split(',').ToDictionary(value => { return value.Split(':')[0].IndexOf("*") > -1 ? value.Split(':')[0].Split('*')[1] : value.Split(':')[0]; }); 
      foreach (var Entry in JSONDictionary1) 
      { 
       JSONDictionary[Entry.Key] = Entry.Value.Split(':')[1]; 
      } 

      IList<KeyValuePair<string, string>> JSONList = JSONDictionary.ToList(); 
      foreach (var Item in JSONList) 
      { 
       Console.WriteLine(Item); 
      } 
      Console.ReadLine(); 
     } 
    } 
} 

enter image description here

Смежные вопросы