Не удается импортировать Json - C # - PullRequest
2 голосов
/ 24 марта 2009

У меня следующая структура класса

public class AreaFields
{
    public List<Fields> Fields { set; get; }
}

public class Fields
{
    public string Name { set; get; }
    public string Value {set; get; }
}

Когда я экспортирую в Json, используя Jayrock.Json.Conversion.JsonConvert.ExportToString(List<AreaField> obj), все работает нормально. Проблема в том, что когда я пытаюсь импортировать его обратно в список AreaField, собственный импорт завершается ошибкой. То, что я пытаюсь сделать, это

Jayrock.Json.Conversion.JsonConvert.Import(strJson)

Есть ли способ переопределить метод импорта?

РЕДАКТИРОВАТЬ: Да, Джейрок знает тип объекта. Полагаю, это связано с сериализацией списка.

Export -
List<AreaField> list = GetAListOfAreaFields();
string sJson = Jayrock.Json.Conversion.JsonConvert.ExportToString(list)

Import -
List<AreaField> list = (AreaField)JsonConvert.Import(typeof(AreaField, sJson);

Исключение - невозможно импортировать AreaField из значения массива JSON.

Ответы [ 3 ]

1 голос
/ 24 марта 2009

Похоже, вы экспортируете List<AreaField>, но пытаетесь импортировать AreaField (в единственном числе). Попробуйте:

List<AreaField> list = (List<AreaField>)JsonConvert.Import(typeof(List<AreaField>, sJson);
0 голосов
/ 25 октября 2013

List <> не работает, но массив работает. Как это:

AreaField[] list = JsonConvert.Import<AreaField[]>(sJson);
0 голосов
/ 24 марта 2009

«Это не работает» - не очень хорошее начало. Исключение? Неверные данные? Знает ли Джейрок тип объекта?

AreaFields af = (AreaFields)Jayrock.Json.Conversion.JsonConvert.Import(typeof(AreaFields), strJson);
...