0

我试图解析出一个垂直有客户和水平时间戳的表格。到目前为止,我所做的是这样做的,但会在每个循环中重复以前客户的时间戳。这是我的代码:

json = JSON.parse(xmlHTTP.responseText);
    message = "<table><tr id='head_table'><td>Name:</td><td>Rnd 1:</td><td>Rnd 2:</td><td>Rnd 3:</td><td>Rnd 4:</td><td>Rnd 5:</td><td>Rnd 6:</td><td>Options:</td></tr>";
    for(var i=0; i<json.collection.length; i++)
    {
        message = message + "<tr><td>" + json.collection[i].customer.name + "</td>";

        for(var j=0; j<json.collection[i].events.length; j++)
        {
            eventmsg = eventmsg + "<td>" + json.collection[i].events[j].time_stamp + "</td>";
        }
        message = message + eventmsg + "</tr>";
    }
    message = message + "</table>";

JSON 看起来像这样:

- collection: [
   - {
      - customer: {
          id: "1",
          name: "Mr Jones",
          customer_id: "1"
        }
      -events: [
         -{
           event_id: "1",
           time_stamp: "1377083342"
          }
         -{
           event_id: "2",
           time_stamp: "1377083342"
          }
4

1 回答 1

0

我在这里没有看到任何错误尝试这个..如果它在 json 的一部分之后不起作用。

var json = JSON.parse(xmlHTTP.responseText),
message = "<table><tr id='head_table'><td>Name:</td><td>Rnd 1:</td><td>Rnd 2:</td><td>Rnd 3:</td><td>Rnd 4:</td><td>Rnd 5:</td><td>Rnd 6:</td><td>Options:</td></tr>";

for(var i=0; i<json.collection.length; i++){
 message+="<tr><td>" + json.collection[i].customer.name + "</td>";
 for(var j=0; j<json.collection[i].events.length; j++){
  message+="<td>" + json.collection[i].events[j].time_stamp + "</td>";
 }
 message+="</tr>";
}
message+="</table>";

你不需要写msg=msg+evntmsg它会令人困惑并导致错误你也不需要另一个 var 事件一个就足够了,因为你只需附加

所以msg+=newstring

想想它,因为你只是附加一个字符串。

提示:缓存你的 json。

var collection = JSON.parse(xmlHTTP.responseText).collection

for(var i=0 , co ; co = collection[i] ; ++i){
 message+="<tr><td>" + co.customer.name + "</td>";
 for(var j=0 , ev ; ev = co.events[j] ; ++j){
  message+="<td>" + ev.time_stamp + "</td>";
 }
 message+="</tr>";
}
message+="</table>";
于 2013-08-22T15:26:53.260 回答