Javascript 如何从JSON响应中删除特定数据
我得到这样的服务响应Javascript 如何从JSON响应中删除特定数据,javascript,json,Javascript,Json,我得到这样的服务响应 Temp([ { XXX: "2", YYY: "3", ZZZ: "4" }, { XXX: "5", YYY: "6", ZZZ: "7" }, { XXX: "1", YYY: "2", ZZZ: "3" } ]); { "temp": [ { "XXX": "2", "YYY": "3", "ZZZ": "4"
Temp([
{
XXX: "2",
YYY: "3",
ZZZ: "4"
},
{
XXX: "5",
YYY: "6",
ZZZ: "7"
},
{
XXX: "1",
YYY: "2",
ZZZ: "3"
}
]);
{
"temp": [
{
"XXX": "2",
"YYY": "3",
"ZZZ": "4"
},
{
"XXX": "5",
"YYY": "6",
"ZZZ": "7"
},
{
"XXX": "1",
"YYY": "2",
"ZZZ": "3"
}
]
}
我想删除javascript中此响应消息的临时值,如下所示
[
{
XXX: "2",
YYY: "3",
ZZZ: "4"
},
{
XXX: "5",
YYY: "6",
ZZZ: "7"
},
{
XXX: "1",
YYY: "2",
ZZZ: "3"
}
]
首先,我不认为这是一个JSON响应。正确的JSON响应如下所示
Temp([
{
XXX: "2",
YYY: "3",
ZZZ: "4"
},
{
XXX: "5",
YYY: "6",
ZZZ: "7"
},
{
XXX: "1",
YYY: "2",
ZZZ: "3"
}
]);
{
"temp": [
{
"XXX": "2",
"YYY": "3",
"ZZZ": "4"
},
{
"XXX": "5",
"YYY": "6",
"ZZZ": "7"
},
{
"XXX": "1",
"YYY": "2",
"ZZZ": "3"
}
]
}
然后可以使用提取数组
response["temp"]
假设您从哪里获得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 result设计用来调用什么方法名
所以我们可以做一些类似的事情:
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);
}
你可以使用substr函数这是完整的响应吗?是的@shahmanthan9,我得到了类似的响应。我只需要数组部分。它返回.js响应,但格式与我给出的相同。然后我假设你得到的是一个Java脚本函数。如果仍然要提取数组,我建议使用slice()函数。