Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/411.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和HTML_Javascript_Html_Json - Fatal编程技术网

Javascript 不带数组的JSON和HTML

Javascript 不带数组的JSON和HTML,javascript,html,json,Javascript,Html,Json,我有我的JSON文件,它只是一个对象,而不是任何数组 {"name":"Autogen Program","start":"2014-05-04","end":"2014-10-12","status":"Completed"} 我试图将JSON中的值分配到HTML中,但我无法这样做 $(function() { $.getJSON('http://localhost:8080/GChartServlet/data1.json', function(statusDataSet) {

我有我的JSON文件,它只是一个对象,而不是任何数组

{"name":"Autogen Program","start":"2014-05-04","end":"2014-10-12","status":"Completed"}
我试图将JSON中的值分配到HTML中,但我无法这样做

$(function() {

 $.getJSON('http://localhost:8080/GChartServlet/data1.json', function(statusDataSet) {
    $.each(statusDataSet, function(i) {
    var color;
    switch(i.status) {
        case "In Progress":
            color = "yellow";
            break;
        case "Pending" : 
            color = "red";
            break;
        case "Completed" : 
            color = "green";
            break;
    }


    if(i.name=="Autogen Program") {
     $("#stat1").append(i.status).css('background-color', color);
    }

  });
     });
HTML代码:——


你能帮我做同样的事情,或者告诉我哪里出了问题吗


关于,

如果您想坚持使用
$。每个
都需要确保返回的结果是一个数组:

statusDataSet = (statusDataSet instanceof Array) ? statusDataSet : [statusDataSet];
$。每个(函数(i))
应该是
$。每个(函数(i,项))
,因为您的
i
是索引而不是项(对象)

希望有帮助


如果JSON不是数组,则不需要
$。每个
循环。别提了:

$(function() {
  $.getJSON('http://localhost:8080/GChartServlet/data1.json', function(statusDataSet) {
    var color;
    switch(statusDataSet.status) {
        case "In Progress":
            color = "yellow";
            break;
        case "Pending" : 
            color = "red";
            break;
        case "Completed" : 
            color = "green";
            break;
    }

    if(statusDataSet.name=="Autogen Program") {
      $("#stat1").append(statusDataSet.status).css('background-color', color);
    }
  }
});

希望问题是$。each(statusDataSet,function(index,i)而不是$。each(statusDataSet,function(i)我没有我的JSON作为数组。我也尝试使用for循环而不是each,但这也没有帮助。请在
getJSON
each
之间使用上面的代码行,如下所示:$(function(){$.getJSON(“”,function(statusDataSet){for(var i=0;i$(function() { $.getJSON('http://localhost:8080/GChartServlet/data1.json', function(statusDataSet) { var color; switch(statusDataSet.status) { case "In Progress": color = "yellow"; break; case "Pending" : color = "red"; break; case "Completed" : color = "green"; break; } if(statusDataSet.name=="Autogen Program") { $("#stat1").append(statusDataSet.status).css('background-color', color); } } });