转换解析的JSON来JavaScript数组
您好我有PHP代码那样的例子:转换解析的JSON来JavaScript数组
$array1 = array("fruits" => "banana","vegetables" => "tomatos");
$array2 = array("name" => "Jack","Age" => "32");
$array3 = array($array1, $array2);
echo json_encode($array3);
JavaScript代码包括jquery的:
var json_data = $.ajax({
type: 'POST',
url: 'scripts/myfile.php',
data: { action: 'myaction' },
dataType: 'json',
cache: false,
success: function(result) {
}
});
console.log(json_data);
这是浏览器的控制台的json_data内容:
"{"HUM":[{"label":"2014-10-16 17:08:55","y":"58"},{"label":"2014-10-15 08:16:55","y":"56"},{"label":"2014-10-15 08:16:50","y":"56"},{"label":"2014-10-15 08:16:45","y":"56"},{"label":"2014-10-15 08:16:40","y":"56"},{"label":"2014-10-15 08:16:35","y":"56"},{"label":"2014-10-15 08:16:30","y":"56"},{"label":"2014-10-15 08:16:25","y":"56"},{"label":"2014-10-15 08:16:20","y":"56"},{"label":"2014-10-15 08:16:15","y":"56"},
"TEMP":[{"label":"2014-10-16 17:08:55","y":"26"},{"label":"2014-10-15 08:16:55","y":"24"},{"label":"2014-10-15 08:16:50","y":"24"},{"label":"2014-10-15 08:16:45","y":"24"},{"label":"2014-10-15 08:16:40","y":"24"},{"label":"2014-10-15 08:16:35","y":"24"},{"label":"2014-10-15 08:16:30","y":"24"},{"label":"2014-10-15 08:16:25","y":"24"},{"label":"2014-10-15 08:16:20","y":"24"},{"label":"2014-10-15 08:16:15","y":"24"},
"HUM2":[{"label":"2014-10-16 17:08:55","y":"38"},{"label":"2014-10-15 08:16:55","y":"36"},{"label":"2014-10-15 08:16:50","y":"36"},{"label":"2014-10-15 08:16:45","y":"36"},{"label":"2014-10-15 08:16:40","y":"36"},{"label":"2014-10-15 08:16:35","y":"36"},{"label":"2014-10-15 08:16:30","y":"36"},{"label":"2014-10-15 08:16:25","y":"36"},{"label":"2014-10-15 08:16:20","y":"36"},{"label":"2014-10-15 08:16:15","y":"36"},{"label":"2014-10-15 08:16:10","y":"36"},
"TEMP2":[{"label":"2014-10-16 17:08:55","y":"23"},{"label":"2014-10-15 08:16:55","y":"24"},{"label":"2014-10-15 08:16:50","y":"24"},{"label":"2014-10-15 08:16:45","y":"24"},{"label":"2014-10-15 08:16:40","y":"24"},{"label":"2014-10-15 08:16:35","y":"24"},{"label":"2014-10-15 08:16:30","y":"24"},{"label":"2014-10-15 08:16:25","y":"24"},{"label":"2014-10-15 08:16:20","y":"24"},{"label":"2014-10-15 08:16:15","y":"24"},{"label":"2014-10-15 08:16:10","y":"24"},{"label":"2014-10-15 08:16:05","y":"24"},{"label":"2014-10-15 08:16:00","y":"24"}]}"
现在我想将其转换为数组,然后将它分离到数组HUM - TEMP - HUM2 - TEMP2
您需要使用parseJson
方法从该json创建对象。
result = $.parseJson(result);
现在你将有一个物体里面所有的数组:
console.log(result['HUM']);
console.log(result['TEMP']);
// etc
是不是只是JSON.parse(字符串)?这是jQuery的实现,它不是像这样的js原生的。否则,它会工作,但。 – somethinghere 2014-10-17 15:15:32
var json_data = $ .ajax({....});该变量默认情况下jquery中的parsejson(结果)我的问题是如何将该对象转换为数组 – Souf 2014-10-17 15:17:22
在控制台对象{HUM:Array [50],TEMP:Array [50],HUM2:Array [50],TEMP2 :Array [50]} – Souf 2014-10-17 15:20:12
你可以用它获取传递给你的AJAX调用的的result
变量success
功能:
success: function(result) {
// result here is your JSON data which has already been parsed
}
您可以使用点或括号记号访问单独的阵列:
var HUM = result.HUM;
// or
var HUM = result["HUM"];
他们已经指定'dataType:'json'',这意味着jQuery无论如何都会将服务器响应解析为JSON。再次调用'JSON.parse'会很糟糕。 – 2014-10-17 15:16:57
@AnthonyGrist啊,我放置了错误的变量。感谢那! – 2014-10-17 15:18:13
我想你已经误解了我想说的话。没有任何理由根据任何变量调用'JSON.parse()'('json_data'甚至不是JSON数据,它是一个jQuery Deferred)。响应将已经是一个对象,他们只需要使用'result'作为对象,并访问'result.HUM'等。 – 2014-10-17 15:21:05
VAR OBJ = JSON.parse(json_data); – Jose 2014-10-17 15:13:49
您的阵列未被终止。 'JSON.parse()'会抛出语法错误。 – Joe 2014-10-17 15:22:45