错误,而在C#
问题描述:
deserilizing JSON我得到的JSON响应这样错误,而在C#
data={"Id": "234", "Name": "pinky", "MobileNumber": "", "ClassName": "Class1_Physics", "DOBTime": "1990-04-11 15:46:38", "Landline": "", "Status": "Unmarried"}
我想deserilize JSON并插入到表中。 我为它创建了2个类,并使用Newtonsoft的dll进行了deserilization。
public class JsonResult
{
public string Id { get; set; }
public string Name { get; set; }
public string MobileNumber { get; set; }
public string ClassName { get; set; }
public string DOBTime { get; set; }
public string Landline { get; set; }
public string Status { get; set; }
}
public class JsonResultRoot
{
[JsonProperty(PropertyName = "data")]
public string Data { get; set; }
public JsonResult JsonResult
{
get { return JsonConvert.DeserializeObject<JsonResult>(Data); }
}
}
代码:
decodedUrl:存储实际JSON数据/串 VAR JsonData = JsonConvert.DeserializeObject(decodedUrl).JsonResult;
答
如果你的JSON包含这个data=
部分,那么它是无效的JSON。您不能使用JSON.NET库反序列化它。
为了反序列化这一点,你可以简单地清理这部分指出:
public class JsonResult
{
public string Id { get; set; }
public string Name { get; set; }
public string MobileNumber { get; set; }
public string ClassName { get; set; }
public string DOBTime { get; set; }
public string Landline { get; set; }
public string Status { get; set; }
}
// Usage:
jsonString = jsonString.Replace("data=").Trim();
var jsonObject = JsonConvert.DeserializeObject<JsonResult>(jsonString);
当然,在一般情况很糟糕。你只应该这样做,如果“你得到这样的JSON响应”,你无能为力。
如果有可能使传入格式正确,那么最好做。