使用JQuery将JSON数据转换为自定义字符串?

时间:2014-01-24 13:49:07

标签: jquery json

我有一个像这样的JSon

[{"label":"Alabama"},{"label":"Alaska"},{"label":"Arizona"},...etc]

我想得到像这样的每个州名

["Alabama","Alaska","Arizona",...etc]

这是我尝试将json转换为自定义字符串。

<script type="text/javascript">
$(document).ready(function () {
var res = [{ "label": "Alabama" }, { "label": "Alaska" }, { "label": "Arizona" }];
var out = $.parseJSON(res);
alert(out);
});
</script>

以上似乎没有用,请帮我一些。

4 个答案:

答案 0 :(得分:1)

这样的东西?

var meow = [];

$.each(out, function(l, i){
    meow.push(i);
});

答案 1 :(得分:1)

使用Array#map功能

var res = [{"label":"Alabama"},{"label":"Alaska"},{"label":"Arizona"}];
var states = x.map(function(o){
    return o.label;
});

或Lo-dash

var states = _.map(res , 'label');

jQuery#map,因为您已经在使用它,它应该解决浏览器问题

var states = jQuery.map( res , function( o, i ) {
  return o.label;
});

答案 2 :(得分:1)

res已经是JavaScript数据结构。使用$.parseJSON是多余的,会导致错误。删除该行。

至于获取数组元素:

states = res.map(function (elem) {
    return elem.label;
});

或者,如果您使用的是Underscore.js,_.pluck(res, "label")

答案 3 :(得分:0)

如果您可以使用Lo-Dash,那么您需要做的就是:

_.values(res);

_.map(res, 'label');

无需担心浏览器与Array.map等的兼容性问题。