将JSON数组转换为单独的JS变量

时间:2014-01-24 05:20:41

标签: javascript arrays json variables

我有一个JSON数组:

{"a":"apple,"b":"banana","c":"carrot"}

我想将数组的每个部分拆分成单独的变量,即

a = "apple",
b = "banana";
c = "carrot";

我用谷歌搜索了我的护目镜,但似乎无法找到正确的方法来做到这一点。我是JSON的新手并且已经做了很多阅读,但我所追求的内容似乎并没有在我的掌握之内被引用。

编辑:我的数组是string还是object似乎有些混乱。我收到PHP的回复如下:

$json = array(
    'a' =>  $a,
    'b'     =>  $b,
    'c' =>  $c,
    );
    echo json_encode($json);

我的JS代码如下:

var data = ajax.responseText;
data = JSON.parse(data);

由于

,我得到{"a":"apple,"b":"banana","c":"carrot"}
json.stringify(data);

3 个答案:

答案 0 :(得分:8)

here找到了一个如何执行此操作的示例。

它假设您想将变量放入全局范围。如果是这种情况,这将起作用:

function extract(variable) {
    for (var key in variable) {
        window[key] = variable[key];
    }
}

var obj = {"a":"apple","b":"banana","c":"carrot"}

extract(obj);

alert(a);
alert(b);
alert(c);

答案 1 :(得分:-1)

在Javascript中,数组是对象,对象是数组。但是他们已经被特殊行为初始化了。

看一下这个答案:

https://stackoverflow.com/a/4215753/1311986

你会发现你想要做一些非常相似的事情。

答案 2 :(得分:-1)

  

首先 {“a”:“apple”,“b”:“banana”,“c”:“carrot”} 不是数组,它是一个简单的JSON字符串。

现在要解析JSON String,你可以使用

JSON.parse()

所有Modern Browsers都支持它,您也可以找到库here

您可以尝试使用您的应用执行此操作:      假设你的jsonString是一个数组。

 var jsonObj = $.parseJSON("### json string #####");

 for(var index = 0; index < jsonObj.length; index++){
     console.log("a:"+jsonObj[index].a+",b:"+jsonObj[index].b+",c:"+jsonObj[index].c);
 }

您将获得如下输出:

a: apple, b:banana, c:carrot
. . . 
. . .

希望这能解决你的问题。