使用Newtonsoft.Json解析Json字符串时出错

使用Newtonsoft.Json解析Json字符串时出错,json,parsing,json.net,Json,Parsing,Json.net,我的JSON字符串如下所示。请注意,它有转义字符 string json = "\"{\\\"Status\\\":true,\\\"ID\\\":24501}\""; 当我使用下面这样的解析方法时,我遇到了如下所述的错误: JObject o = JObject.Parse(json); 从JsonReader读取作业对象时出错。当前JsonReader项不是对象:String 如何消除此错误,或者是否有其他方法来解析json字符串并获取值?删除第一个和最后一个引号: string jso

我的JSON字符串如下所示。请注意,它有转义字符

string json = "\"{\\\"Status\\\":true,\\\"ID\\\":24501}\"";
当我使用下面这样的解析方法时,我遇到了如下所述的错误:

JObject o = JObject.Parse(json);
从JsonReader读取作业对象时出错。当前
JsonReader
项不是对象:
String


如何消除此错误,或者是否有其他方法来解析json字符串并获取值?

删除第一个和最后一个引号:

string json = "{\"Status\":true,\"ID\":24501}";

请参阅Json格式。

您的对象似乎是双重编码的。尝试:

string json = "{\"Status\":true,\"ID\":24501}";

在这里,格式应如下所示:

string jsonNew = @"{'Status': True,'ID': 24501 }";
string json = "{\"Status\":true,\"ID\":24501}";
json = json.Replace("\\\\", "\\");

你需要这样的东西

json = json.Replace(@"\", string.Empty).Trim(new char[]{'\"'})

正如索拉贝尔在评论中所说,问题在于双重逃避

要获得正确的格式,请执行以下操作:

string jsonNew = @"{'Status': True,'ID': 24501 }";
string json = "{\"Status\":true,\"ID\":24501}";
json = json.Replace("\\\\", "\\");
这样做:

string jsonNew = @"{'Status': True,'ID': 24501 }";
string json = "{\"Status\":true,\"ID\":24501}";
json = json.Replace("\\\\", "\\");

今天也有类似的问题。我的解决方案包含在这个扩展方法中(使用
c#
):


这个json字符串是我从API中得到的。如何删除转义字符?\@SVI:我来晚了,但如果有人需要,就用类似于
json的东西替换它们。替换(“\\\”,“\\”)
没有答案,我面临同样的问题