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



我的JSON字符串看起来像这样。请注意,它有转义字符。

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

当我像下面这样使用Parse方法时,我遇到了如下错误:

JObject o = JObject.Parse(json);

从JsonReader读取jobobject时出错。当前JsonReader项不是对象:String

我如何摆脱这个错误或有任何其他方法来解析我的json字符串和获取值?

去掉前后双引号:

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

看起来你的对象是双重编码的。试一试:

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

你需要这样的东西

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

在这里的格式应该是这样的:

string jsonNew = @"{'Status': True,'ID': 24501 }";

正如SolarBear在他的评论中所说,问题是双重转义。

要获得正确的格式,像这样:
string json = "{"Status":true,"ID":24501}";

像这样做:

json = json.Replace("\\", "\");

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

public static class StringExtensions
{
    public static string RemoveDoubleEncoding(this string text)
    {
        if(string.IsNullOrEmpty(text))
            return string.Empty;
        var result = text.TrimStart('"').TrimEnd('"');
        result = result.Replace(@"", string.Empty);
        return result;
    }
}

相关内容

  • 没有找到相关文章

最新更新