2015-02-26 4 views
1

я не на 100% знакомы с JSON и посмотрел вокруг, чтобы увидеть, если мой вопрос был дан ответ еще, но в любом случае у меня есть JSON-файл, содержащий несколько словарей с этим форматом:Json литье в словарь

 { 
      "String": { 
       "string1": [ 
        { 
         "level": 1, 
         "desc": "d1", 
         "icon": "1" 
        } 
       ], 
       "string2": [ 
        { 
         "level": 2, 
         "desc": "d2", 
         "icon": "2" 
        } 
       ], 
       "string3": [ 
        { 
         "level": 3, 
         "desc": "d3", 
         "icon": "3" 
        } 
       ] 
      } 
     }, 

String является статическим, но в то время как строка1-3 является динамической и может иметь любое строковое значение, многократное из этих словарей появляется во всем файле, выполнение этого через любой из преобразователей json2class дает мне Object String {get; задавать; }.

То, что я пытаюсь сделать, это преобразовать это что-то вдоль линий:

Dictionary<string, Object> Dictionary { get; set; } 
public class Object 
{ 
    public int level { get; set; } 
    public string desc { get; set; } 
    public string icon { get; set; } 
} 
+0

отправьте свой код конвертации. Из того, что я вижу сейчас, вы, вероятно, захотите использовать динамический/словарь вместо Object. –

+0

Конвертировать код? StageBase = JsonConvert.DeserializeObject (json); – Phoenix

ответ

2

Вы можете легко десериализации вам JSon строку, используя Json.NET так:

public class DictionaryContainer 
{ 
    public Dictionary<string, List<SampleObject>> String { get; set; } 
} 

public class SampleObject 
{ 
    public int level { get; set; } 
    public string desc { get; set; } 
    public string icon { get; set; } 
} 

string jsonString = "Your json string"; 
var dic = JsonConvert.DeserializeObject<DictionaryContainer>(jsonString); 
+0

При попытке сделать это var dic null, любые идеи? – Phoenix

+0

'string _string = _Stage.Bosses.ToString(); Boss _Boss = JsonConvert.DeserializeObject (_string); ' Код, который я использую, чтобы Deserialize – Phoenix

+0

Что такое Boss? Если вы хотите десериализовать отправленный вами Джейсон, вы должны использовать «Словарь». Не могли бы вы разместить свои определения объектов? –

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