我有一个PHP脚本,它在控制台中返回一个JSON对象:
[{"CONTAINER_NUMBER":"CONT1234567","RETURN_POOL":"GARDENCITY"},{"CONTAINER_NUMBER":"CONT987654","RETURN_POOL":"NORTHTOWN"}]
我需要做的就是创建另一个只包含CONTAINER_NUMBER值的数组。它应该是这样的:
"CONT1234567", "CONT987654"
我发现了这个:http://jsfiddle.net/arunpjohny/ygqaa/
我改变它看起来如下所示:
$.POST('phpScript.php', {cntArray:cntArray}, function(data)
{
var containers = JSON.parse(data);
var obj = {};
$.each(containers, function(i, v){
obj[v.CONTAINER_NUMBER]
});
console.log(obj)
});
但是控制台只显示一个空白数组。
答案 0 :(得分:1)
如果您只想要一个键为ID的对象:
obj[v.CONTAINER_NUMBER]
应为obj[v.CONTAINER_NUMBER] = ''
如果您需要一系列ID:
$.post('phpScript.php', {cntArray:cntArray}, function(data)
{
var containers = JSON.parse(data);
var ids = [];
$.each(containers, function(i, v){
ids.push(v.CONTAINER_NUMBER);
});
console.log(ids)
});
或者,有点清洁:
$.post('phpScript.php', {cntArray:cntArray}, function(data)
{
var containers = JSON.parse(data);
var ids = $.map(containers, function(i, v){
return v.CONTAINER_NUMBER;
});
console.log(ids);
});
答案 1 :(得分:0)
您的代码存在的问题是,您传递的值是否具有对象的键!
var x = {}
x[1]
x[2]
所以你得到一个空物体!但正如你所提到的,那不是你想要的,你不想得到一个对象,而是一个数组。
您可以做的是使用map并根据需要将所有值放入数组中!见下文:
var json = [{"CONTAINER_NUMBER":"CONT1234567","RETURN_POOL":"GARDENCITY"},{"CONTAINER_NUMBER":"CONT987654","RETURN_POOL":"NORTHTOWN"}]
var res = json.map((obj) => obj.CONTAINER_NUMBER)
console.log(res)
或查看实时示例
var json = [{"CONTAINER_NUMBER":"CONT1234567","RETURN_POOL":"GARDENCITY"},{"CONTAINER_NUMBER":"CONT987654","RETURN_POOL":"NORTHTOWN"}]
var res = json.map((obj) => obj.CONTAINER_NUMBER)
console.log(res)