我已经生成了一些JSON,我试图将它拉入JavaScript中的对象.我一直在收到错误.这就是我所拥有的:
var data = '{"count" : 1, "stack" : "sometext\n\n"}';
var dataObj = eval('('+data+')');
Run Code Online (Sandbox Code Playgroud)
这给了我一个错误:
unterminated string literal
Run Code Online (Sandbox Code Playgroud)
有了JSON.parse(data),我看到类似的错误消息:Unexpected token ?Chrome中的" unterminated string literal"和Firefox和IE中的" ".
当我取出\n后sometext,错误消失了两种情况.我似乎无法弄清楚为什么\n制造eval和JSON.parse失败.
我有一个返回JSON对象的ASP.NET MVC操作.
JSON:
{status: "1", message:"", output:"<div class="c1"><div class="c2">User generated text, so can be anything</div></div>"}
Run Code Online (Sandbox Code Playgroud)
目前我的HTML正在打破它.输出字段中将有用户生成的文本,因此我必须确保我转义所有需要转义的内容.
有人列出了我需要逃脱的所有事情吗?
我没有使用任何JSON库,只是自己构建字符串.
我的JSON看起来像这样:
{
"Master" : {
"Major" : "S",
"Minor" : "E",
"IPAddress" : "0.0.0.0",
"Detail":"<root>
<key keyname=\"state\">3</key>
<key keyname=\"oldState\">1</key>
<key keyname=\"currency\"></key>
<key keyname=\"denomination\"></key></root>",
"SourceCreateDate" : "2014-04-03T14:02:57.182+0200"
},
"Messages" : [{
"MessageCode" : "0",
"MessageType" : "8"
}]
}
Run Code Online (Sandbox Code Playgroud)
验证时,我收到"发现无效字符"错误.无效字符在哪里?如何使此JSON有效?