我正在尝试阅读我的JSON结果。
这是我的JsonResult
public class JsonResult
{
public string ResponseStatus;
public string Status;
public string Remarks;
public string ErrorCode;
public List<Data> data;
}
public class Data
{
public string Status;
public DateTime Date;
public string Number;
public string Amount;
public string Balance;
public string TranId;
public string OPTId;
public string RefId;
}
这是我的JSON结果
{
"ResponseStatus":"1",
"Status":"Success",
"Remarks":"Your recharge has been Pending.",
"ErrorCode":"3",
"Data":
{
"Status":"Pending",
"Date":"2017-02-23T17:22:26.2001954+05:30",
"Number":"9915933511",
"Amount":10.0,
"Balance":137.714,
"TranId":"1126887",
"OPTId":"","RefId":""
}
}
这是我读取结果的代码
var result = JsonConvert.DeserializeObject<List<JsonResult>>(retPKT);
但是获得例外......
无法反序列化当前的JSON对象(例如{&#34; name&#34;:&#34; value&#34;}) into type&#39; System.Collections.Generic.List`1 [JsonResult + Data]&#39;因为 该类型需要一个JSON数组(例如[1,2,3])来反序列化 正确。要修复此错误,请将JSON更改为JSON数组 (例如[1,2,3])或更改反序列化类型以使其正常 .NET类型(例如,不是整数的基本类型,不是集合 类似于数组或List的类型,可以从JSON反序列化 宾语。 JsonObjectAttribute也可以添加到类型中以强制它 从JSON对象反序列化。 Path&#39; Data.Status&#39;,第1行, 第118位。
我该如何解决这个问题?
答案 0 :(得分:5)
在Json字符串中,Data是一个对象,而不是一个数组。所以你的JsonResult类应该是这样的:
public class JsonResult
{
public string ResponseStatus;
public string Status;
public string Remarks;
public string ErrorCode;
public Data Data;
}
答案 1 :(得分:2)
如果你想发送数据列表List<Data>
那么在JSON中它应该是一个数组形式
更改以下JSON内容
"Data": {"Status":"Pending",
"Date":"2017-02-23T17:22:26.2001954+05:30",
"Number":"9915933511",
"Amount":10.0,"Balance":137.714,
"TranId":"1126887","OPTId":"","RefId":""}
要
"Data": [{"Status":"Pending",
"Date":"2017-02-23T17:22:26.2001954+05:30",
"Number":"9915933511",
"Amount":10.0,"Balance":137.714,
"TranId":"1126887","OPTId":"","RefId":""}]
答案 2 :(得分:0)
数据不是一个列表,它是一个对象。您的模型应如下所示(仅修改了JsonResult):
public class Data
{
public string Status { get; set; }
public string Date { get; set; }
public string Number { get; set; }
public double Amount { get; set; }
public double Balance { get; set; }
public string TranId { get; set; }
public string OPTId { get; set; }
public string RefId { get; set; }
}
public class JsonResult
{
public string ResponseStatus { get; set; }
public string Status { get; set; }
public string Remarks { get; set; }
public string ErrorCode { get; set; }
public Data Data { get; set; }
}
希望它有所帮助!