Adr*_*ano 2 javascript c# json
我已经使用字符串中带有引号的对象序列化了 JSON,如下所示:
var bla = [
{
"label": "person",
"id": "1",
"data": "bla means: \"lala\""
}
];
Run Code Online (Sandbox Code Playgroud)
我知道它在服务器端的样子。但是当我在浏览器中调试它时,我发现收到了错误,因为它如下所示:
var bla = [
{
"label": "person",
"id": "1",
"data": "bla means: "lala""
}
];
Run Code Online (Sandbox Code Playgroud)
和我的错误:
未捕获的语法错误:JSON 中 JSON.parse () 位置 25 处出现意外标记 l
我读到 JSON 应该识别\" https://www.json.org/
有什么想法我应该在哪里纠正吗?当我序列化对象时在服务器端还是使用 JavaScript 在客户端?
编辑:
在服务器端,我使用 C# 库"System.Web.Script.Serialization"
来序列化对象:
List<SomeObject> someObject= new List<SomeObject>();
SomeObject bla1 = new SomeObject();
bla1.id = "1";
bla1.label = "person";
bla1.label = "bla means: \"lala\"";
someObject.Add(bla1);
Run Code Online (Sandbox Code Playgroud)
var bla = new System.Web.Script.Serialization.JavaScriptSerializer().Serialize(someObject);
概括
我修复了服务器端的序列化字符串,因为我使用 API,无法操作该对象。
var bla = new System.Web.Script.Serialization.JavaScriptSerializer().Serialize(someObject).Replace("\\\"", "\\\\\\\"");
小智 6
就我而言,我只使用String.raw()。
JSON.parse(`{ "key": "\""}`) // fail
JSON.parse(String.raw`{ "key": "\""}`) // work
Run Code Online (Sandbox Code Playgroud)