Json导入失败 - C#

时间:2009-03-24 16:07:06

标签: c# asp.net json json.net jayrock

我有以下类结构

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

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

当我使用Jayrock.Json.Conversion.JsonConvert.ExportToString(List<AreaField> obj)导出到Json时,一切正常。问题是当我尝试将其导回到AreaField列表时,本机导入失败。我想要的是

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

有没有办法可以覆盖导入方法?

编辑:是的,jayrock知道对象的类型。我的猜测它必须与我一起序列化列表。

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

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

异常 - 无法从JSON数组值导入AreaField。

3 个答案:

答案 0 :(得分:1)

看起来您正在导出List<AreaField>但尝试导入AreaField(单数)。尝试:

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

答案 1 :(得分:0)

“它不起作用”不是一个好的开始。例外?错误的数据? Jayrock是否知道对象的类型?

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

答案 2 :(得分:0)

列表与LT;&GT;不会工作,但数组工作。像这样:

AreaField[] list = JsonConvert.Import<AreaField[]>(sJson);