我从WS获得了以下字符串(JSON):
{"cables":"[{\"rexelReference\":\"FIL01084259\",\"providerReference\":\"1084259\",\"productLibe\":\"CABLE BLEU D\\u0027INSTRUM 01IT09EGFA\",\"brand\":\"FIL\",\"color\":\"BLEU\",\"section\":\"0,9\",\"conductorNumber\":1,\"displayProduct\":true},{\"rexelReference\":\"FIL01084386\",\"providerReference\":\"1084386\",\"productLibe\":\"CABLE BLEU D\\u0027INSTRUM 01IT09EGSF\",\"brand\":\"FIL\",\"color\":\"BLEU\",\"section\":\"0,9\",\"conductorNumber\":1,\"displayProduct\":true}]","productNumber":"2"}
和这些对象:
public class ProductList
{
[JsonProperty("cables")]
public List<ProductDTO> cables { get; set; }
public int count { get; set; }
}
public class ProductDTO
{
public string rexelReference;
public string providerReference;
public string productLibe;
public string brand;
public string color;
public string section;
public string conductorNumber;
public string displayProduct;
}
当我尝试使用此代码反序列化时:
ProductList list = JsonConvert.DeserializeObject<ProductList>(wsResponse2);
我收到错误:
其他信息:转换值时出错&#34; [{&#34;输入&#39; System.Collections.Generic.List`1 [VoltaFront.DTO.ProductDTO]&#39;。路径&#39;电缆&#39;,第1行,第14位。
我不明白这个问题。是因为反斜杠?我想在反序列化之前删除它们吗?
现在编辑我得到的错误是:
*附加信息:转换值时出错&#34; [{&#34; rexelReference&#34;:&#34; FIL01084259&#34;,&#34; providerReference&#34;:&#34; 1084259&#34 ;,&#34; productLibe&#34;:&#34; CABLE BLEU D \ u0027INSTRUM *&lt;
答案 0 :(得分:2)
你有一个json格式的问题, 只需删除未使用的双引号,并按以下方式使用它:
string wsResponse2 = "{\"cables\":[{\"rexelReference\":\"FIL01084259\",\"providerReference\":\"1084259\",\"productLibe\":\"CABLE BLEU D\\u0027INSTRUM 01IT09EGFA\",\"brand\":\"FIL\",\"color\":\"BLEU\",\"section\":\"0,9\",\"conductorNumber\":1,\"displayProduct\":true}]}";
答案 1 :(得分:0)
在删除转义并放入JSON格式化程序后,您的Json无效,并抛出异常。
修复您的JSON。这是错误消息:
Unable to format the JSON input. Expected a ',' or '}' at character 15 near 'les":"[{"rexelRefere'