Javascript 在显示之前与我的JSON对象交互

Javascript 在显示之前与我的JSON对象交互,javascript,html,json,loops,Javascript,Html,Json,Loops,你好,stack overflow社区, 我在这一点上陷入了一段时间,即使我通过很多文章试图解决这个问题,我仍然不知道哪种方式最适合我的情况,以管理我的HTML上显示我的JSON 首先,我的JSON是一个长度可变的字符串,由我的php代码发送,并通过XMLHttpRequest在JS中接收 var return_data = xhr.responseText; JSON格式示例: "output":[ { "id":"13", "titre":"assiette servite

你好,stack overflow社区, 我在这一点上陷入了一段时间,即使我通过很多文章试图解决这个问题,我仍然不知道哪种方式最适合我的情况,以管理我的HTML上显示我的JSON

首先,我的JSON是一个长度可变的字符串,由我的php代码发送,并通过XMLHttpRequest在JS中接收

var return_data = xhr.responseText;
JSON格式示例:

"output":[
{
    "id":"13",
    "titre":"assiette servite xxx",
    "format":"dat",
    "date":"2016-09-10",
    "source":"DDT 68",
    "description":"exemple"
},
{
    "id":"16",
    "titre":"releve pollution atmospherique",
    "format":"shp",
    "date":"2014-01-05",
    "source":"agence qualite de l air",
    "description":"exemple"
},
我设法用以下命令简单地显示我的JSON字符串:

document.getElementById("status").innerHTML = return_data;
但在这里,我宁愿循环它以对其进行样式设置,然后将其发送到我的HTML。我尝试了很多不同的循环,但都没有成功 (例如)

我需要分析我的字符串:

var jay = JSON.parse(return_data);
但我仍然无法处理不同的实体,例如在HTML中显示

    <div id="status"></div>

id 1

乳头 格式 日期

id 2

乳头 格式 日期

我还在做测试,希望在此期间有人能给我一些提示或解释我做错了什么

测试失败的示例:

for(var i=0; i < jay.length; i++)
{
  var add = jay[i]['titre'];
}
document.getElementById("status").innerHTML = add;
for(变量i=0;i

干杯。

您应该添加两个括号来包装来自服务器的JSON,这不是正确的JSON格式,这是:

{ "output":[
       {
        "id":"13",
        "titre":"assiette servite xxx",
        "format":"dat",
        "date":"2016-09-10",
        "source":"DDT 68",
        "description":"exemple"
       },
       {
        "id":"16",
        "titre":"releve pollution atmospherique",
        "format":"shp",
        "date":"2014-01-05",
        "source":"agence qualite de l air",
        "description":"exemple"
       },
    }
您必须在循环中添加输出级别:

for(var i=0; i < jay.output.length; i++)
{
  var add = jay.output[i]['titre'];
}
for(变量i=0;i
干杯

编辑

    var add = [];
    for(var i=0; i < jay.output.length; i++)
        {
          add.push(jay.output[i]['titre']);
        }
   document.getElementById("status").innerHTML = add.join(', ');
var add=[];
对于(var i=0;i
这将显示以逗号分隔的所有元素


干杯

一个使用Array.map()的更为周到的解决方案


编辑的可能重复:它工作并显示“titre”,但只显示第一个实体,而不是下一个实体可能需要在循环中添加一些东西,以将答案累积到变量add?干杯。我正在努力寻找类似的、非常好的主意add.push/add.join用法。再次非常感谢你,你为我节省了很多时间!
document.getElementById("status").innerHTML = jay.output.map(function(obj){
   return obj.titre;
}).join(', ');