我通过HTTP请求从Web服务获取一些数据,如下所示:
{
...
"status" : "some_status",
...
}
返回的字段由\
转义的字符(即\"status\" : \"some_status\"
)返回,我使用Newsoft.Json将返回的数据反序列化为(自定义)对象。问题是,当"some_status"
本身包含"
时:
{
...
"status" : "some_status "hello world"",
...
}
再次,每个"
转义为\"
,反序列化失败并显示unexpected character
。
如何指定使用Newsoft.Json
完全忽略或删除内部"
?或者,如果不可能,可以使用Regex
?
感谢。
答案 0 :(得分:2)
没有JSON解析器能够处理首先没有正确格式化的JSON字符串。
所以你需要确保你的theModel格式正确且符合JSON.org标准。
答案 1 :(得分:0)
您的JSON字符串不正确。双引号之间的字符串不能包含其他双引号。 如果它很有用,您可以使用在线编辑器测试您的JSON字符串:http://www.jsoneditoronline.org/
你不能删除双引号,否则你的结果不再被视为字符串而是int。
我不知道你是如何管理你的网络摄像头并使用反斜杠的,但通常你应该有这样的东西:
WebClient client = new WebClient();
Stream stream = client.OpenRead("http://.....");
StreamReader reader = new StreamReader(stream);
object obj = Newtonsoft.Json.JsonConvert.DeserializeObject<object>`(reader.Read().ToString());
object是要反序列化的对象的类型