0

我的问题是,如果在 JSON 文件的开头没有密钥,我无法打印从服务器收到的内容,这是我当前的代码...

    $.getJSON("http://10.21.26.251:8080/Transport/getMessage?user=1", function(data) {
    var output = "<tr>"; 
    for ( var i in data.item) {
    output += "<td>"
    + "-- "
    + data.item[i].messageId
    + " --<br>-- "
    + data.item[i].userId
    + " --<br>"
    + data.item[i].messageContent
    + "<br></br></td>";
    }
    output += "</tr>";
    document.getElementById("placeholder").innerHTML = output;
    });

但这取决于收到的具有项目名称的代码,当前的 JSON 是这样收到的……我无法控制收到的内容

    {
    "messageId": "d1e5afa5-5153-49b7-ae73-3501fbed1b68",
    "userTo": {
    "userId": 1,
    "userName": "COE",
    "userLastCheckedDate": 1362994638139
    },
    "userFrom": {
    "userId": 2,
    "userName": "Man",
    "userLastCheckedDate": 1362994638139
    }
    etc...
4

2 回答 2

0

很难用这么小的样本来了解 json 模式,但假设它是一个电子邮件列表,我会试试这个:

$.getJSON("http://10.21.26.251:8080/Transport/getMessage?user=1", function(data) {
var output = "<tr>"; 
for ( var i = 0; i < data.length;i++) {
output += "<td>"
+ "-- "
+ data[i].messageId
+ " --<br>-- "
+ data[i].userFrom.userId
+ " --<br>"
+ data[i].messageContent
+ "<br></br></td>";
}
output += "</tr>";
document.getElementById("placeholder").innerHTML = output;
});
于 2013-03-11T10:59:41.347 回答
0

如果我理解你想要做什么,你基本上想在不知道它们的名字的情况下遍历 JSON 对象属性。另外(如果我错了,请纠正我),您的对象似乎是一个对象数组。你可以这样做:

var output = "<tr>";

for (var i=0; i<data.length; i++) { // Loop through the main array of objects

    output += "<td>";

    $.each(data[i], function(key, val) { // Loop through the properties of the current object
        output += "-- "
            + val
            + " --<br>";
    });

    output += "</br></td>";
}
output += "</tr>";
document.getElementById("placeholder").innerHTML = output;
于 2013-03-11T11:03:35.723 回答