2015-04-17 4 views
0

Так что я пытаюсь правильно разобрать этот JSON, но он просто падает. И http://json2csharp.com/ не в состоянии дать мне правильные классыМногопользовательский JSON для объекта C#

Это JSON:

[ 
    { 
    "id": "2300", 
    "file_name": "2300_file", 
    "representations": { 
     "thumb": "thumb.jpeg", 
     "small": "small.jpeg", 
     "medium": "medium.jpeg", 
     "full": "2300.jpeg" 
    } 
    }, 
    { 
    "id": "2c00", 
    "file_name": "2c00_file", 
    "representations": { 
     "thumb": "thumb.jpeg", 
     "small": "small.jpeg", 
     "medium": "medium.jpeg", 
     "full": "2c00.jpeg" 
    } 
    }, 
    { 
    "id": "0800", 
    "file_name": "0800_file", 
    "representations": { 
     "thumb": "thumb.jpeg", 
     "small": "small.jpeg", 
     "medium": "medium.jpeg", 
     "full": "0800.jpeg" 
    } 
    } 
] 

А вот текущий код я использую:

public class Representations 
{ 
    public string thumb { get; set; } 
    public string small { get; set; } 
    public string medium { get; set; } 
    public string full { get; set; } 
} 

public class Picture 
{ 
    public string id { get; set; } 
    public string file_name { get; set; } 
    public Representations representations { get; set; } 
} 

private void button1_Click(object sender, EventArgs e) 
{ 
    Picture ImageThing = JsonConvert.DeserializeObject<Picture>(InputBox.Text); //Imputbox is where the json resides 

    MessageBox.Show(ImageThing.file_name); 
} 

Так как я могу сделать MessageBox выводить имя_файла всех трех объектов отдельно?

Извините за низкое качество объяснения, я устал, и я просто хочу, чтобы эта маленькая работа работала.

+0

возможно дубликат [Разбор JSON в C#] (http://stackoverflow.com/questions/1212344/parse-json -in-c-sharp) – durron597

ответ

2

Это означает массив JSON из трех объектов:

[ 
    { 
    ... 
    }, 
    { 
    ... 
    }, 
    { 
    ... 
    } 
] 

Таким образом, вы не можете десериализации это к одному объекту. Она должна быть десериализован к массиву/список с указанием результата должен быть список:

List<Picture> pictures = JsonConvert.DeserializeObject<List<Picture>>(InputBox.Text); 
+0

Это сработало! Большое спасибо, это было просто: D –

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