2013-11-15 7 views
1

Я хотел бы десериализации строку JSON, но почему-то я не получаю правильное значение :( Это входной строки JSONдесериализации JSON массив

{ 
    "files":[ 
    {"path":"/c/asd/input.txt","size":13}, 
    {"path":"/c/asd/input.txt","size":136}, 
    {"path":"/c/asd/input.txt","size":483}, 
    {"path":"/c/asd/input.txt","size":136} 
    ], 
    "md5sum":"bbd88df7b2d8c95f922ebf0d718b5687" 
} 

создал класс для его

public class Files 
    { 
    public string path { get; set; } 
    public int size { get; set; } 
    } 
public class myObject 
    { 
    public List<Files> files { get; set; } 
    public string md5sum { get; set; } 
    } 

И пытаются использовать JavaScriptSerializer:

var jss = new JavaScriptSerializer(); 
List<myObject> obj = s.Deserialize<List<myObject>>(File.ReadAllText(json)); 

Что я делаю неправильно OBJ счетчик? нуль. Мне нужно использовать только значение пути.

ответ

4

Это один корневой объект, а не список. Попробуйте:

var obj = s.Deserialize<myObject>(File.ReadAllText(json)); 

Кроме того, я предполагаю, что json здесь путь к файлу, а не сам JSON.

0

Попробуйте

jss.Deserialize<myObject>(File.ReadAllText(json)); 

, потому что вы пытаетесь десериализации коллекции (List), но объект s это не коллекция.

0

Ваш вход JSON не list.Change Deserialize<List<myObject> к Deserialize<myObject>

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