我有一个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);
答案 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
. . .
. . .
希望这能解决你的问题。