我的C#类是
public class Man
{
public string name {get; set;}
}
要反序列化的字符串就像这样
var content = "[{name: \"john\"}]"
现在在保存到db之前,我正在检查是否可以将字符串反序列化为C#对象然后存储它。该检查通过
JsonConvert.DeserializeObject<List<Man>>(content)
所以我在db中保存了这个字符串但是当我在javascript中对保存的字符串执行JSON.parse时,它崩溃并出现错误
JSON.parse("[{name: \"john\"}]")
SyntaxError: Unexpected token n
现在我明白通过围绕密钥(“名称”)的周围引号可以解决这个问题。这是正确的字符串,适用于JSON.parse和JsonConvert.DeserializeObject
var content = "[{\"name\": \"john\"}]
问题是我在db中已经有很多这样生成错误的字符串,只能在JSON.parse上崩溃。转换此类字符串的最佳方法是什么,以便JSON.parse可以工作?比string.replace更好的东西 请注意,与给出的示例相比,实际字符串非常大且复杂。
答案 0 :(得分:0)
即使是using Newtonsoft.Json;
格式的json数据,您也可以使用var content = "[{name: \"john\"}]"
DeserializeObject对象。
值包含以下数据:{StyleId:"1710","SelectedItemToColorMap":{1391:"583",21531:"7733"}}
var jsondata = JsonConvert.DeserializeObject(value);
在DeserializeObject之后,jsondata看起来像
{
"StyleId": "1710",
"SelectedItemToColorMap": {
"1391": "583",
"21531": "7733"
}
}