Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/459.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何解析JSON数组_Javascript_Parsing_Jsonp - Fatal编程技术网

Javascript 如何解析JSON数组

Javascript 如何解析JSON数组,javascript,parsing,jsonp,Javascript,Parsing,Jsonp,我刚到这里,遇到了一个路障,一直在寻找,但用我的技能找不到答案。任务很简单,我想解析来自气象站的数据。我使用了W3C教程,但似乎无法解析此文件,但没有问题。所有的循环解析示例都给了我一个又一个的警告 我想要的只是能够选择temp[0](天知道有多少),例如通过javascript,并将其显示在网站上。我真的迷路了,试着去寻找,如果我错过了金矿,那我的运气就糟了。谢谢 示例代码 var text = '[{"humidity":"42.8000","stationtime":"2014-07-06

我刚到这里,遇到了一个路障,一直在寻找,但用我的技能找不到答案。任务很简单,我想解析来自气象站的数据。我使用了W3C教程,但似乎无法解析此文件,但没有问题。所有的循环解析示例都给了我一个又一个的警告

我想要的只是能够选择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]; 

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

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一样访问它,并使用它在页面上显示


我在以下位置编写了一个jquery实现:

jquery使使用JSONP更加容易,下面是一个示例()

再次更新

下面是使用代码()的另一个示例


我试图做的示例

var text='[{“湿度”:“42.8000”,“stationtime”:“2014-07-06 19:43:52”,“temp”:“23.3000”,“timestamp”:“2014-07-06T09:44:07.918Z”},{“湿度”:“43.0000”,“stationtime”:“2014-07-06 19:42:57”,“temp”:“23.2000”,“timestamp”:“2014-07-069:42:22.T0003Z”},“湿度”:“43.2000”,“stationtime”:“湿度”:“2014-07-06 19:42:36”,“temp”:“23.3000”,“timestamp”:“2014-07-06T09:42:51.737Z”}];obj=JSON.parse(text);document.getElementById(“demo”).innerHTML=obj.temp[0];
请勿在注释中发布代码。将其添加到问题中从
var text='[{“湿度”中删除单引号”:4.“
您应该将问题编辑为“如何解析json”,而不是“jsonp”,因为这是两件不同的事情(jsonp是一种绕过跨源限制的方法).但是他需要JSONP才能找到JSONHi Rajesh,谢谢你的回复!你有没有可能帮我编写代码,把一个可行的例子放在一起?我的知识在Java方面是有限的。这不是Java,而是javascript。两者都非常不同。我看了一下JSFIDLE,对我来说肯定很有用,我现在正在做图表,我认为这会有用帮了大忙。谢谢!谢谢Chad!非常接近我要找的东西,我需要做什么改变才能只选择一个temp?例如,使用我正在使用的某种obj.temp[1]吗?你的问题是没有obj.temp,它只是obj[1],试着将JSON粘贴到控制台中,包装为()。这样可以更容易地查看JSON对象的内容。(-chrome控制台)感谢Chad,这真是一个令人沮丧的问题。所以没有简单的方法使用原始的$.getJSON方法从第一个对象提取温度?一定很接近。太棒了!最后一件事是如何使用?对于第二个示例,var text One?因为我需要页面来获取值并自动更新。非常感谢您的帮助,seriousl你帮我摆脱了困境。
$.getJSON('http://data.sparkfun.com/output/AJ2p4r8Owvt1MyV8q9MV.json?callback=?', function (data) {
    data.forEach(function (item) {
        $('body').append(JSON.stringify(item)); 
    });
})
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;