我的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;
}
}