简体   繁体   English

JavaScript和jQuery在循环中解析JSON

[英]JavaScript & jQuery parse JSON in loop

Sorry about asking this, I can't get it to work even with looking at other questions... 很抱歉问这个问题,即使看了其他问题我也无法让它工作......

I have a JSON output in "json.php", for example: 我在“json.php”中有一个JSON输出,例如:

    [
       {"serverid":"1","servername":"Server One"},
       {"serverid":"2","servername":"Server Two"}
    ]

I have a script, to grab the data & parse it into a variable 我有一个脚本,用于获取数据并将其解析为变量

var servers;
jQuery.get('json.php', function(data) {
     servers =    JSON.parse(data);
     jQuery('#servers').servers.servername
});

I have a div to output the results to: 我有一个div输出结果:

<div id="servers"></div>

Whatever I try, I always get some kind of 无论我尝试什么,我总会得到一些

"Uncaught TypeError: Cannot read property 'servername' of undefined" error. “未捕获的TypeError:无法读取未定义的属性'servername'错误。

I'd also like to look around the results, however I can't even get it to print atm. 我也想看看结果,但我甚至无法打印出来。

Again sorry for another question like this 再次抱歉这样的另一个问题

Don't you mean something like this? 你的意思不是这样吗? the jQuery object (which is a reference to your div) knows nothing about servername . jQuery对象(它是对div的引用)对servername一无所知。 Also, you'll need to iterate through the array of items in order to get them all: 此外,您需要遍历项目数组以获取所有项目:

servers = $.parseJSON(data);

$.each(servers, function(index, value) {
    $("#servers").text($("#servers").text() + " " + value.servername);
});

Fiddle: http://jsfiddle.net/H2RC2/1/ 小提琴: http//jsfiddle.net/H2RC2/1/

The error message is all you need. 您只需要错误消息。 The jQuery('#servers') wrap the #servers div in the jQuery object. jQuery('#servers')包装了jQuery对象中的#servers div。 And this object has got no property such as servers . 而且这个对象没有servers这样的属性。

Rather you could use: 相反,你可以使用:

    var servers = JSON.parse(data);
    var res = '';
    for(var i = 0; i<servers.length; i++){
        res = res + '<p>' + servers[i].servername +'</p>';
    }

    $('#servers').append(res);

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM