我是JSON和JS的新手,我希望有人能幫助我。我正在處理兩個單獨的JSON文件。配方JSON文件具有ID字段和成分編號字段。在我的第二個JSON文件中,我需要匹配來自第一個JSON文件的成分編號與第二個JSON文件中名爲itemFullUPC的相應字段。如果字段中有匹配項,我需要將第一個JSON文件中與正確的itemUPC對應的itemName替換爲無序列表中頁面上顯示的當前compositionNum。以下是數據庫和我的代碼。希望有人能幫助我!需要匹配的JSON文件
配方JSON示例:
[
{
"recipeName":"Test",
"id":"10",
"ingredients":[
{
"ingredientNum":"070796501104",
"ingredientMeasure":"1 bottle",
"ingredientMisc1":"(33.8 fl oz)"
},
{
"ingredientNum":"070796000164",
"ingredientMeasure":"1/2 cup",
"ingredientMisc1":""
}
]
}
]
產品JSON示例:
[
{
"productName":"Tomatoes",
"itemFullUPC":"070796501104"
},
{
"productName":"Cherries",
"itemFullUPC":"070796000164"
}
]
例如,在第二數據庫中。名爲「Cherry」的productName在第一個數據庫中具有相同的編號,我需要使用項目名稱替換頁面上當前生成的列表。
期望輸出
- 6-8盎司070796501104將成爲6-8盎司西紅柿
- 1/4茶匙070796000164將成爲1-4茶匙櫻桃
我需要對整個列表或任何匹配項執行此操作。我在下面的謝謝中包含了我的嘗試。
$(document).ready(function() {
'use strict';
$.ajax({
url: 'path to recipeDB',
cache: true,
success: function(data){
data = data.replace(/\\n/g, "\\n")
.replace(/\\'/g, "\\'")
.replace(/\\"/g, '\\"')
.replace(/\\&/g, "\\&")
.replace(/\\r/g, "\\r")
.replace(/\\t/g, "\\t")
.replace(/\\b/g, "\\b")
.replace(/\\f/g, "\\f");
data = data.replace(/[\u0000-\u0019]+/g,"");
var json = JSON.parse(data);
$.ajax({
dataType: "jsonp",
url: 'path to itemDB',
cache: true,
success: function(itemData){
var product_data = itemData;
var productUPC = '';
var productName = '';
$.each(product_data, function(i, item) {
productUPC += item.itemFullUPC;
productName += item.itemName;
});
var ingredients = '';
$.each(json, function(i, item) {
if (item.id == "10") {
ingredients += '<ul>';
for (var i = 0; i < item.ingredients.length; i++) {
ingredients += '<li>' + item.ingredients[i].ingredientMeasure + ' ' + item.ingredients[i].ingredientNum + ' ' + item.ingredients[i].ingredientMisc1 + '</li>';
}
ingredients += '</ul>';
}
});
$('#recipeIngredients').html(ingredients);
}
});
}
});
});
我已經成功地列表從第一個數據庫工作,但我不知道如何鏈接到第二個數據庫,並從顯示在列表中的項目名稱UPC更改的項目。
似乎產品應該是一個對象而不是數組。 – epascarello