【发布时间】:2014-06-18 09:22:17
【问题描述】:
我的 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 更好的东西 请注意,与给出的示例相比,实际的字符串相当大且复杂。
【问题讨论】:
-
先反序列化,然后再用 json.net 序列化
标签: c# javascript json json.net