【发布时间】:2021-09-16 17:41:39
【问题描述】:
我正在尝试反序列化 JSON 字符串,但由于某种原因它不起作用。
string json_string = "{'CartID':{'ID':253419,'AuthenticatedKey':223239},'CustomerID':null,'PurchaseItems':null,'TenderInformation':null,'ModifyCartItems':null,'AdditionalCartInformation':{'ServiceInformation':{'ServiceInformationItem':[{'ServiceID':243401}]}}}";
modifyCartReq = JsonConvert.DeserializeObject<ModifyCartReq>(json_string);
我也尝试了以下
string json_string = "{'CartID':{'ID':253419,'AuthenticatedKey':223239},'CustomerID':null,'PurchaseItems':null,'TenderInformation':null,'ModifyCartItems':null,'AdditionalCartInformation':{'ServiceInformation':{'ServiceInformationItem':[{'ServiceID':243401}]}}}";
modifyCartReq = JsonSerializer.Deserialize<ModifyCartReq>(json_string);
我在下面得到同样的错误
无法将当前 JSON 对象(例如 {"name":"value"})反序列化为类型“ExampleType”,因为该类型需要 JSON 数组(例如 [1,2,3])才能正确反序列化。 要修复此错误,要么将 JSON 更改为 JSON 数组(例如 [1,2,3]),要么将反序列化类型更改为普通的 .NET 类型(例如,不是像整数这样的原始类型,而不是像这样的集合类型可以从 JSON 对象反序列化的数组或列表。 JsonObjectAttribute 也可以添加到类型中以强制它从 JSON 对象反序列化。 路径“AdditionalCartInformation.ServiceInformation.ServiceInformationItem”,第 1 行,位置 213。
从我解决这个问题的尝试来看,感觉最终是因为一些语法问题。
【问题讨论】:
-
你能分享
ModifyCartReq类吗? -
这根本不是有效的 JSON。 JSON 需要双引号
"而不是单引号'
标签: c# json deserialization