我正在接受这样的服务回复。
Temp([
{
XXX: "2",
YYY: "3",
ZZZ: "4"
},
{
XXX: "5",
YYY: "6",
ZZZ: "7"
},
{
XXX: "1",
YYY: "2",
ZZZ: "3"
}
]);
我想在javascript中删除此响应消息的temp,如下所示。
[
{
XXX: "2",
YYY: "3",
ZZZ: "4"
},
{
XXX: "5",
YYY: "6",
ZZZ: "7"
},
{
XXX: "1",
YYY: "2",
ZZZ: "3"
}
]
答案 0 :(得分:0)
首先,我不认为这是一个JSON响应。正确的JSON响应就是这样。
{
"temp": [
{
"XXX": "2",
"YYY": "3",
"ZZZ": "4"
},
{
"XXX": "5",
"YYY": "6",
"ZZZ": "7"
},
{
"XXX": "1",
"YYY": "2",
"ZZZ": "3"
}
]
}
然后您可以使用。
提取数组response["temp"]
答案 1 :(得分:0)
假设您获取 JSONP 响应的源代码是安全的,并且总是提供正确的JSONP响应。
基本上这意味着你会得到如下回应:
functionName(jsonString)
就像你的例子一样:
Temp([{"XXX":"2","YYY":"3","ZZZ":"4"},{"XXX":"5","YYY":"6","ZZZ":"7"},{"XXX":"1","YYY":"2","ZZZ":"3"}])
提取JSON - 方法1
如果你只需要来自响应函数参数的对象,你可以这样做:
var jsonObject = null;
try
{
var response = 'Temp([{"XXX":"2","YYY":"3","ZZZ":"4"},{"XXX":"5","YYY":"6","ZZZ":"7"},{"XXX":"1","YYY":"2","ZZZ":"3"}])';
var temp = response.split('(');
delete temp[0];
temp = temp.join('(').split(')');
delete temp[temp.length-1];
temp = temp.join(')');
temp = temp.substring(1, temp.length-1);
jsonObject = JSON.parse(temp);
}
catch(ex)
{
}
console.log(jsonObject);
提取JSON - 方法2 使用此方法实际上允许将多个json对象作为函数参数。 假设您不知道JSONP结果的设计名称是什么方法。
所以我们可以这样做:
var response = 'Temp([{"XXX":"2","YYY":"3","ZZZ":"4"},{"XXX":"5","YYY":"6","ZZZ":"7"},{"XXX":"1","YYY":"2","ZZZ":"3"}])';
try{
var fnName = response.split('(')[0];
var fn = new Function(fnName, response);
var jsonObject = null;
fn(function(json){
jsonObject = json;
});
console.log(jsonObject);
}
catch(ex){
console.log(ex.message);
}