0

我正在努力如何根据循环中的当前 id 获取 temp.json 的值,请参阅下面的代码我希望能够根据 temp 中匹配的交付 id(deliveryid 和 temp_deliveryid)检索数组.json。然后将它们打印到一张桌子上。temp.json 的内容会不断变化。

交付.json

{
   "all_info":[
      {
         "deliveryid":"1",
         "deldescription":"Food Delivery3432",
         "delivery_create_time":"2013-09-26 01:19:03",
         "routeid":"1",
         "startloc":"Newcastle",
         "endloc":"Paris",
         "distance":"500",
         "stockid":"2",
         "stockname":"Chicken",
         "stockshelf":"20",
         "stockdesc":"Newcastle Chickens",
         "supplierid":"1",
         "supname":"Benny's Fresh Food",
         "supaddress":"1 Osborne Road",
         "supcity":"Manchester",
         "suppostcode":"MA11KL7",
         "vehicleid":"1",
         "vehiclereg":"TRE12XYZ"
      },
      {
         "deliveryid":"2",
         "deldescription":"Fresh Beef",
         "delivery_create_time":"2013-09-26 01:19:03",
         "routeid":"3",
         "startloc":"London",
         "endloc":"Niece",
         "distance":"800",
         "stockid":"1",
         "stockname":"Beef",
         "stockshelf":"20",
         "stockdesc":"Beef from Madrid Farm",
         "supplierid":"2",
         "supname":"Denone Ltd",
         "supaddress":"231 Morje Road",
         "supcity":"Barcelona",
         "suppostcode":"MR3K12",
         "vehicleid":"2",
         "vehiclereg":"RFGXMN4"
      },
      {
         "deliveryid":"3",
         "deldescription":"Meat Delivery",
         "delivery_create_time":"2013-10-14 01:48:59",
         "routeid":"3",
         "startloc":"London",
         "endloc":"Niece",
         "distance":"800",
         "stockid":"4",
         "stockname":"Trout and Salmon",
         "stockshelf":"11",
         "stockdesc":"FIshers Best Catch",
         "supplierid":"4",
         "supname":"Youngs Ltd",
         "supaddress":"4 Tressle Road",
         "supcity":"Telford",
         "suppostcode":"TE62GF5",
         "vehicleid":"1",
         "vehiclereg":"TRE12XYZ"
      },
      {
         "deliveryid":"6",
         "deldescription":"Travel Chicken",
         "delivery_create_time":"2013-10-16 02:27:26",
         "routeid":"4",
         "startloc":"Edingburgh",
         "endloc":"Malaga",
         "distance":"2000",
         "stockid":"3",
         "stockname":"Rare Meats",
         "stockshelf":"45",
         "stockdesc":"Expensive Food",
         "supplierid":"3",
         "supname":"Posh Food Ltd",
         "supaddress":"3 Fawn Street",
         "supcity":"Warick",
         "suppostcode":"WR32B54",
         "vehicleid":"1",
         "vehiclereg":"TRE12XYZ"
      }
   ]
}

temp.json

{
   "temp_info":[
      {
         "temperatureid":"1",
         "recorded_temp":"24",
         "weather":"Sunny",
         "temp_recorded_time":"2013-09-27 20:54:11",
         "temp_deliveryid":"1"
      },
      {
         "temperatureid":"2",
         "recorded_temp":"14",
         "weather":"Cloudy",
         "temp_recorded_time":"2013-09-27 20:54:11",
         "temp_deliveryid":"3"
      },
      {
         "temperatureid":"3",
         "recorded_temp":"17",
         "weather":"Rain",
         "temp_recorded_time":"2013-09-27 20:54:51",
         "temp_deliveryid":"2"
      },
      {
         "temperatureid":"4",
         "recorded_temp":"32",
         "weather":"Hot",
         "temp_recorded_time":"2013-09-27 20:54:51",
         "temp_deliveryid":"1"
      }
   ]
}

网站代码示例

$.getJSON("jsonfiles/deliveries.json", function(delivery) {
    for(var i = 0; i < delivery.all_info.length; i++) {  
       var deliv = delivery.all_info[i];
           x = '<div id="' + deliv.deliveryid + '">' + deliv.deldescription + '</div>
           document.getElementById("sortable1").innerHTML += x;
                $.getJSON("jsonfiles/temp.json", function(temp) {
                    deliv.forEach(function(entry) {
                       var tempi = tempe.temp_info[i];
                         if (tempi.temp_deliveryid == entry.deliveryid){
var y = '<tr><td>[' + temp.temp_recorded_time + '] '+ temp.temperature_id + ' - Temperature: ' + temp.recorded_temp +'&#x2103; - Weather (' + temp.weather + ')!</td></tr>';    
document.getElementById("temptbody").innerHTML += y;    
     });
    }
  });
}); 
4

1 回答 1

1

正如我的评论中所述,如果 Deliveries.json 没有像 temp.json 那样经常更改,我会这样做

$.getJSON("jsonfiles/deliveries.json", function(delivery) {
    变量 x ='';
    for(var i = 0; i < delivery.all_info.length; i++) {  
       var deliv = delivery.all_info[i];
           x += '<div id="' + deliv.deliveryid + '">' + deliv.deldescription + '</div>';
    }
    $("#sortable").html(x);
});

这更有效地更新每个交付。

然后得到你的 temp.json

$.getJSON("jsonfiles/temp.json", function(temp) {
       var temps = {};
       变量 y='';
        for(var i = 0; i < temp.temp_info.length; i++) {            
               var tempi = tempe.temp_info[i];
           y += '<tr><td>[' + temp.temp_recorded_time + '] '+ temp.temperature_id + ' - 温度:' + temp.recorded_temp +'℃ - 天气(' + temp.weather + ')!< /td></tr>';
            }   
           $("#temptbody").html(y);  
  });

我认为您可能没有解释的是 和 之间的#sortable关系#temptbody。如果存在这种关系,另一种选择可能是将deliveries.json 保存为变量,然后在检索temp.json 时,将适当的临时详细信息直接附加到deliveries.json

于 2013-10-16T04:34:46.433 回答