2013-05-12 95 views
0

我很難訪問特定的json數據。 Here`s我的JSON文件訪問Json文件中的數據

{ 
    "id": "72", 
    "title": "Item Category Product Level Average Price Comparison", 
    "xLabel": null, 
    "yLabel": "Average Price", 
    "zLabel": null, 
    "data": [{ 
     "avgPrice": "87", 

     "numProducts": "85" 
    }, { 
     "avgPrice": "60", 

     "numProducts": "49" 
    }, { 
     "avgPrice": "59", 

     "numProducts": "65" 
    } 

我想借此avgPrice和第一對應的商戶名稱的唯一值的numProducts的價值。例如,在json數據中,第一個和最後一個merchantName是相同的(即「merchantName」:「A」)。所以我想利用商人A的值第一和商人B(如果重複它,我想完成的是第一,然後去另一個商家。

var mn = []; 
$.each(returnedData.data, function (index, value) { 
    if($.inArray(value.merchantName, mn) == -1) { 
    mn.push(value.merchantName); 
    } 
}); 
//all the merchants name stored in mn[] 

function get_items_by_merchant(merchant_name) { 
    var items = new Array(); 
    $.each(returnedData.data, function (index, item) { 
    if(returnedData.merchantName == merchant_name) 
     items.push(item); 
    }); 
    return items; 
} 
var CB_items = []; 
for(var i = 0; i < mn.length; i++) { 
    CB_items[i] = get_items_by_merchant(mn[i]); 
    $.each(CB_items, function (index, item) { 
    var avgpricve = parseFloat(response.data[i].avgPrice); 
    var numproducts = parseFloat(response.data[i].numProducts); 
    datajson = { 
     x: avgpricve, 
     y: numproducts 
    } 
    result_data.push(datajson) 
    }); 
} 

響應是JSON文件中的數據,我我得到它使用$ .getJSON。在上面的代碼中,我想

接入商戶名稱線response.data [I] .MN [I] .avgPrice ..因爲,我無法..有什麼辦法我可以做什麼?

回答

1

在功能get_items_by_merchant改變這種

$.each(returnedData.data, function(index, item) { 
       if (returnedData.merchantName == merchant_name) // There is not merchantName in returnedData. 
        items.push(item); 
    }); 

$.each(returnedData.data, function(index, item) { 
      if (item.merchantName == merchant_name) 
       items.push(item); 
     }); 

終極密碼變化在於: -

Demo

var result_data = []; 
var mn = []; 
$.each(returnedData.data, function (index, value) { 
    if ($.inArray(value.merchantName, mn) == -1) { 
     mn.push(value.merchantName); 
    } 
}); 
//all the merchants name stored in mn[] 

function get_items_by_merchant(merchant_name) { 
    var items = new Array(); 
    $.each(returnedData.data, function (index, item) { 
     if (item.merchantName == merchant_name) items.push(item); 
    }); 
    return items; 
} 
var CB_items = []; 
for (var i = 0; i < mn.length; i++) { 

    CB_items[i] = get_items_by_merchant(mn[i]); 
    $.each(CB_items[i], function (index, item) { 
     var avgpricve = parseFloat(item.avgPrice); 
     var numproducts = parseFloat(item.numProducts); 
     datajson = { 
      x: avgpricve, 
      y: numproducts 
     } 
     result_data.push(datajson) 
    }); 
    console.log(result_data) 
+0

是完成的。但它是akwardly重複值.. PLS檢查.. [ 對象 X:87 Y:85 __proto__:對象 , 對象 X:70 Y:61 __proto__:對象 , 對象 X :70 Y:61 __proto__:對象 , 對象 X:60 Y:49 __proto__:對象 , 對象 X:60 Y:49 __ proto__:對象 , 對象 X:60 Y:49 __proto__:對象 ] – Ash 2013-05-12 06:11:35

+0

我有我的JSON文件6個數據.. – Ash 2013-05-12 06:13:40

+0

我不知道你的邏輯,但有你的JSON解析問題。我修好了。檢查小提琴並查看console.log值。 – PSL 2013-05-12 06:58:55