我有一个JSON字符串
var str = '{'+
'"name": "John Doe",'+
'"company": [{"name": "ABC Corp"}, {"name": "XYZ Corp"}],'+
'"salary": "$200000"'+
'}';
我将ajax调用作为
$.ajax({
url: 'url',
type: 'POST',
context: document.body,
dataType: 'json',
data: str,
success: function(data){},
error: function(error){}
});
如何在进行ajax调用之前转义JSON数组中的双引号。
答案 0 :(得分:2)
str
已经是有效的JSON(根据JSONLint),因此在通过$.ajax
发送之前,您不需要转义任何内容。
答案 1 :(得分:2)
看起来你的方向错误 - JSON.stringify
用于将JSON对象转换为字符串,你想要的方法是JSON.parse
。
所以改为:
$.ajax({
url: 'url',
type: 'POST',
context: document.body,
dataType: 'json',
data: JSON.parse(str),
success: function(data){},
error: function(error){}
});
您还可以将格式化为JSON的字符串传递给$ .ajax,并且因为您的字符串已经是有效的JSON,您可以完全跳过该步骤:
$.ajax({
url: 'url',
type: 'POST',
context: document.body,
dataType: 'json',
data: str,
success: function(data){},
error: function(error){}
});
虽然你可以把它作为一个对象来构建,如果这更容易(通常是试图格式化字符串!):
var postData = {
name:'John Doe'
... etc
};
$.ajax({
url: 'url',
type: 'POST',
context: document.body,
dataType: 'json',
data: postData,
success: function(data){},
error: function(error){}
});