如何更改下面给出的json数组?

时间:2013-03-12 12:51:02

标签: javascript jquery json

我有一个JSON数组,格式如下:

[{"country":"Algeria"},{"country":"Africa"},{"country":"America"},{"country":"Libiya"}]

我需要更改如下:

{"Algeria","Africa","America","Libiya"}

如何使用Jquery或JavaScript?

2 个答案:

答案 0 :(得分:1)

在javascript中:

var myArray = [{"country":"Algeria"},{"country":"Africa"},{"country":"America"},{"country":"Libiya"}];
var myNewArray = [];
for (var item in myArray) {
    var country = myArray[item].country;
    myNewArray.push(country);
}
alert(JSON.stringify(myNewArray));

答案 1 :(得分:1)

你的问题实际上有错误的符号。您想要的最终结果应该是方括号([]),而不是花括号({})。大括号表示一个对象而不是一个数组,但你没有使用键值结构,所以你上面的最终结果实际上是无效的。

相反,您似乎希望["Algeria","Africa",America","Libiya"]作为最终结果。

假设你的意思是改变你所拥有的数组,而不是创建一个新数组并假设你使用的是JavaScript:

var arr = [{"country":"Algeria"},{"country":"Africa"},{"country":"America"},{"country":"Libiya"}], // declare your array upfront (but this could be a `JSON.parse()` call)
    i = 0, // counter
    l = arr.length; // limit/length of array

for (i; i < l; i += 1) {
    arr[i] = arr[i].country; // Replace object with value of country property.
}

// `arr` will now be `["Algeria","Africa",America","Libiya"]`

当然,您可能需要引入一些检查以确保数组的每个元素都有一个名为country的属性,并在重写的数组中处理该属性。但是我现在就告诉你,看看你是如何继续下去的。如果您的数组有效,那么这应该有效。