【发布时间】:2017-05-04 07:40:16
【问题描述】:
我正在尝试反序列化 JSON 字符串,但出现错误:
var response = jss.Deserialize<Dictionary<string,string>>(responseValue);
我收到一个错误:
数组的反序列化不支持类型“System.String”。
我认为如果我将\" 更改为',错误将得到修复
这是字符串
"{\"data\":[],\"error\":1,\"error_msg\":\"找不到关联的 database\",\"message\":\"请检查您发送的sr_no\"}"
我想要这样
"{'data':[],'error':1,'error_msg':'找不到关联 database','message':'请检查你发送的sr_no'}"
我已经尝试过以下使用功能,但对我不起作用
responseValue.Replace("\"","'");
【问题讨论】:
-
你确定这就是字符串吗?看起来它只是它的调试器表示。另外,这看起来像是 JSON,为什么要对它进行奇怪的字符串操作(尤其是那些使其 invalid JSON),而不是正确地将其视为 JSON?
-
您的代码有效dotnetfiddle.net/nwqUqM
-
是的,它是一个调试器表示@JamesThorpe。实际发生的是我使用 var response = jss.Deserialize
>(responseValue); 反序列化 josn但我得到一个错误,“类型'System.String'不支持数组的反序列化。”。 -
在这种情况下,这看起来很像XY Problem - 为什么不问你的实际问题呢?
-
我认为问题出在字符串中,因为当我像这样传递 json 时: var response = jss.Deserialize
>("{'name':'John' ,'年龄':'23'}");那么这工作正常。所以我认为这是字符串操作的问题。