使用Newtonsoft json.net将json字符串反序列化为字典时,我遇到了一个问题。这是我的json字符串具有某些特殊字符的情况。
string jsonString = "{\"name\":\"Jones Smith\",\"age\":\"20\",\"description\":\"The one live with \"ALIGATOR\"\"}";
Dictionary<string, object> dict = JsonConvert.DeserializeObject<Dictionary<string, object>>(jsonString);
我尝试找到使用json.net的解决方案,但未找到。因此,最终计划是删除该“字符”。那么,这种情况下最好的解决方案是什么?
答案 0 :(得分:1)
我认为,除了更改原始格式之外,您在您的情况下不能做很多事情。您输入的问题是,"
字符一次直接在json中转义一次,而一次在json值中转义。
请考虑以下部分:"description":"The one live with "ALIGATOR""
反序列化器应该如何知道应该将哪个"
视为值的一部分或json格式的一部分?
答案 1 :(得分:0)
我得到了答案,就像最后一条评论一样,那是无效的JSON,下面是有效的JSON
{"name":"Jones Smith","age":"20","description":"The one live with \"ALIGATOR\""}
如果字段描述的值是“带有“ ALIGATOR”的代码”,则我只能在特殊字符前添加“ \”以生成有效的JSON并转换为c#,如下所示:
string jsonString = {\"name\":\"Jones Smith\",\"age\":\"20\",\"description\":\"The one live with \\"ALIGATOR\\"\"}