Json.JsonSerializationException : 无法反序列化当前 JSON 对象
Posted
技术标签:
【中文标题】Json.JsonSerializationException : 无法反序列化当前 JSON 对象【英文标题】:Json.JsonSerializationException : Cannot deserialize the current JSON object 【发布时间】:2021-12-03 00:47:51 【问题描述】:我的问题是当我尝试反序列化我的 API json 响应时出现此错误。 Newtonsoft.Json.JsonSerializationException:'无法将当前 JSON 对象(例如 "name":"value")反序列化为类型 'System.Collections.Generic.List`1[Entities.JsonDataType]',因为该类型需要 JSON 数组(例如 [1,2,3])正确反序列化。
我的 json 数据返回类似这样的内容
"success": true,
"result": [
"name": "USD Amerikan Doları",
"buying": "6.6920",
"selling": "6.6995"
,
"name": "EUR Euro",
"buying": "7.7322",
"selling": "7.7393"
,
"name": "GBP İngiliz Sterlini",
"buying": "8.5933",
"selling": "8.6041"
,
"..."
]
我的班级属性:
public class JsonDataType
//public string name get; set;
//public string buying get; set;
//public string selling get; set;
public bool success get; set;
public List<Result> result get; set;
public class Result
public string name get; set;
public string buying get; set;
public string selling get; set;
反序列化时出现错误:
List<JsonDataType> X = Newtonsoft.Json.JsonConvert.DeserializeObject<List<JsonDataType>>(response.Content);
我也尝试了这些代码,但都没有工作
JsonDataType X = JsonConvert.DeserializeObject(response.Content);
IEnumerable<Result> X = (JsonDataType)JsonConvert.DeserializeObject<IEnumerable<Result>>(response.Content, typeof(JsonDataType));
List<Result> X = JsonConvert.DeserializeObject<JsonDataType>(response.Content, typeof(Result));
如果有人可以帮助我,我会很平静。 提前感谢您的时间(✿◠‿◠)
【问题讨论】:
那个 JSON 不是数组/列表。如果您使用JsonConvert.DeserializeObject<JsonDataType>(response.Content);
,它应该可以工作
我已经将数据视为字符串。但我想转换为 Listforeach(var result in response.result) ...
这就是我要找的,我终于找到了。 JsonDataType X = Newtonsoft.Json.JsonConvert.DeserializeObject这是我的答案
JsonDataType X = Newtonsoft.Json.JsonConvert.DeserializeObject<JsonDataType>(response.Content);
【讨论】:
请edit您的帖子包含解释。仅代码答案没有什么长期价值以上是关于Json.JsonSerializationException : 无法反序列化当前 JSON 对象的主要内容,如果未能解决你的问题,请参考以下文章