2

我有一个以下格式的 JSON 数组:

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

我需要将其更改如下:

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

如何使用 Jquery 或 JavaScript 做到这一点?

4

2 回答 2

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));
于 2013-03-12T12:55:43.893 回答
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,以及在重写的数组中处理该属性的某种方法。但我暂时把这个留给你,看看你过得怎么样。如果您的数组一开始就有效,这应该可以工作。

于 2013-03-12T12:59:09.467 回答