如何解析JSON数组

时间:2014-07-06 11:25:44

标签: javascript parsing jsonp

在这里遇到了新的障碍并且遇到了障碍,一直在搜索,但无法通过我的技能设置找到答案。任务非常简单,我想解析来自气象站的http://data.sparkfun.com/output/AJ2p4r8Owvt1MyV8q9MV.json。我使用过W3C教程,但似乎无法解析此文件,但http://json.parser.online.fr没有问题。所有循环解析示例都会在警报后给我警报。

我想要的是能够选择temp [0](出于上帝知道多少),例如通过javascript并将其显示在网站上。我真的输了,试着搜索,如果我错过了金矿那么我的坏。谢谢!

示例代码

var text = '[{"humidity":"42.8000","stationtime":"2014-07-06 19:43:52","temp":"23.3000","timestamp":"2014-07-06T09:44:07.918Z"},{"humidity":"‌​43.0000","stationtime":"2014-07-06 19:42:57","temp":"23.2000","timestamp":"2014-07-06T09:42:22.003Z"},{"humidity":"‌​43.2000","stationtime":"2014-07-06 19:42:36","temp":"23.3000","timestamp":"2014-07-06T09:42:51.737Z"}]';  
var obj = JSON.parse(text); 
document.getElementById("demo").innerHTML = obj.temp[0]; 

2 个答案:

答案 0 :(得分:2)

首先,您需要解析传入的字符串,如下所示:

temp_arr = JSON.parse(json_string);

只需循环遍历temp_arr数组,并且在每次循环迭代中,您将拥有一个对象(tobj)。例如,像这样:

{"humidity":"40.9000","stationtime":"2014-07-06 21:21:03","temp":"22.6000","timestamp":"2014-07-06T11:20:27.231Z"}

您只需要像tobj.temp一样访问它并使用它在页面上显示。

我在 http://jsfiddle.net/DNH5n/2/

编写了一个jquery实现

答案 1 :(得分:0)

Jquery使得使用JSONP变得更加容易了(http://jsfiddle.net/icodeforlove/9mBsr/

$.getJSON('http://data.sparkfun.com/output/AJ2p4r8Owvt1MyV8q9MV.json?callback=?', function (data) {
    data.forEach(function (item) {
        $('body').append(JSON.stringify(item)); 
    });
})

再次更新

这是另一个使用您的代码(http://jsfiddle.net/icodeforlove/9mBsr/2/

的示例
var text = '[{"humidity":"42.8000","stationtime":"2014-07-06 19:43:52","temp":"23.3000","timestamp":"2014-07-06T09:44:07.918Z"},{"humidity":"‌43.0000","stationtime":"2014-07-06 19:42:57","temp":"23.2000","timestamp":"2014-07-06T09:42:22.003Z"},{"humidity":"‌43.2000","stationtime":"2014-07-06 19:42:36","temp":"23.3000","timestamp":"2014-07-06T09:42:51.737Z"}]';

var obj = JSON.parse(text);

document.getElementById("demo").innerHTML = obj[0].temp;