如何向客户端返回带有双引号的字符串?脚本将其解析为JSON对象
How can I return a string with double quotes to a client script parse it into JSON objects?
我有一个WebMethod,它由JavaScript调用以从数据库中获取数据。数据库对此是禁止的,所以我不能在那里更改任何内容。我想用JavaScript做这件事。
当字符串到达JavaScript:时,它看起来是这样的
"[{"id":"0", "value":"Avery Bradley"},{"id":"31", "value":"Jason "Jet" Terry"}]"
我已尝试替换(''"', ''''"')
以添加转义符。我让它以Replace("'"", "'''"")
的方式在.NET端工作。然而,这是一个将使用它的独立控件,并且应该进行验证。
我做错了什么?
函数GetDataCallBack(childId、senderParam、senderValue、callback){var值;
$.ajax({
type: "POST",
async: false,
url: callback,
data: "{'id': '" + childId + "', 'parameter': '" + senderParam + "', 'value': '" + senderValue + "'}",
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function (json) {
values = json.d;
}
});
return values;
}
问题出在服务器端。它正在提供无效的JSON。具体来说,这是数组中的最后一个对象:
"value":"Jason "Jet" Terry"
"Jet"
周围的那些引号需要转义。服务器正在为您提供无效的JSON。
您可以尝试更正损坏的JSON,但它会很笨拙,而且可能不完美。
服务器端需要进行修复,以便提供有效的JSON。
我认为你在这里做错了什么。JSON文件应该只是JSON,而不是其他文件。它不应该是JSON的字符串表示,JSON将字符串解析为字符串,然后从那里解析为对象——只需将文件/流/任何内容视为字符串即可。
如果需要将JSON嵌入某些标记(XML、HTML)中,请在JSON字符串中使用该语言的指定转义方法。
如果您需要将JSON嵌入到某个程序文件中,请尝试使用编码对象的匹配文字表示(例如,在Javascript中非常容易)。如果您使用的语言没有很好的表达,请将其存储到一个额外的文本文件中,然后从中读取。
相关文章:
- 在使用客户端脚本时拾取JSON对象
- 如何在java脚本中传递对象数组
- Firefox插件SDK:在侧边栏和主脚本之间通信对象
- inDesign脚本”;对象无效”;
- 如何打开文件对象(HTML)并在谷歌应用程序脚本中解析它
- 如何使用巴别塔脚本's对象在Javascript中
- 如何为输出Json对象的ajax调用编写客户端脚本
- 正在等待加载脚本对象
- 将谷歌脚本对象传递给HTML模板
- 如何将特定的Java脚本对象传递给PHP,而不输出“数组”
- 如何在另一个对象中获取java脚本对象的内容
- 如何从.csv文件导入数据并将其转换为java脚本对象
- JS:调用给定脚本对象的特定函数
- 运行故障&纱线运行&;在package.json中的脚本对象上
- 如何获得这个Java脚本对象的所需顺序
- 从内容脚本访问后台脚本对象
- 在node.js中显示Java脚本对象内容
- javascript脚本'对象不'不支持此属性或方法'
- 使用createObject (google maps)在coldfusion查询中创建java脚本对象
- 无法访问内容脚本对象方法