知道这个JSON字符串有什么问题吗?
"\"iccid\":\"8500000000000000005\",\"msisdn\":\"4485000000005\",\"comment\":null,\"lastSessionStart\":1480120318000,\"lastSessionEnd\":1480120456000,\"simStatus\":\"Live\",\"activated\":true,\"enabled\":true,\"connected\":false,\"usage\":73728}"
我试图通过以下方式取消它:
json = json.Replace("\\\"", "");
但我仍然收到此错误:
解析值时遇到意外的字符:1。路径 ' lastSessionStart',第1行,第91位。
JSONLint.com称它是一种有效的JSON格式。
答案 0 :(得分:1)
如果这是你的实际JSON字符串,它看起来像是双序列化的。要获取数据,您需要对其进行两次反序列化:一次获取未转义的JSON,一次获取实际数据。
使用json = json.Replace("\\\"", "");
尝试取消对字符串的删除将无法正常工作 - 除了反斜杠之外,实际上会删除所有引号,使JSON无效。
请尝试这样做,其中json
是您问题中的字符串:
string unescapedJson = JsonConvert.DeserializeObject<string>(json);
Data data = JsonConvert.DeserializeObject<Data>(unescapedJson);
和Data
是以下类:
public class Data
{
public string iccid { get; set; }
public string msisdn { get; set; }
public string comment { get; set; }
public long lastSessionStart { get; set; }
public long lastSessionEnd { get; set; }
public string simStatus { get; set; }
public bool activated { get; set; }
public bool enabled { get; set; }
public bool connected { get; set; }
public int usage { get; set; }
}