簡體   English   中英

如何使用jQuery解析讀取的JSON元素

[英]How to parse read json elements with jquery

我必須在移動應用程序中創建購物車系統,我想存儲ID和產品數量,該ID應該是陣列的鍵(用於修改產品數量),嘗試使用對象而不是陣列,但出現錯誤:當我嘗試讀取json變量時,undefined不是一個函數

通過JSON.stringify(cart)

我的購物車代碼是這樣的

var cart = [];
var produit = {}; 
produit['qte'] = $('.'+id_prd).text();
produit['id_produit'] = id_prd;
cart[id_prd] = produit;
window.sessionStorage["cart1"]= JSON.stringify(cart);

還給我

{"7":{"qte":"1","id_produit":7},"8":{"qte":"1","id_produit":8}}

當我嘗試解析json字符串時

 var parsed = $.parseJSON(window.sessionStorage["cart1"]);

嘗試讀取json時出現錯誤“未定義不是函數”

 var i=0;
  for (k in parsed) {
    var k_data = parsed[k];
    k_data.forEach(function(entry) {                              



    alert(entry);

    ch+=entry.id_produit;
    if(i<parsed.length-1)
     ch+= ',';
    if(i==parsed.length-1)
        ch+=')';
    i++;
 });
 }

您能否澄清我的錯誤原因,以及是否有更好地讀取json的解決方案

問題是您使用的是k_data.forEach(function(entry)但是forEach用於數組,而k_data只是一個簡單的javascript對象。

嘗試更改:

k_data.forEach(function(entry){

對此:

$(k_data).each(function(entry){

更重要的是,如果JSON始終與您發布的結構相同,則我認為每個函數都不是必需的,也許這就是您要尋找的方式:

var i=0;
var ch = "(";
for (k in parsed) {
    var k_data = parsed[k];                         

    alert(k_data);

    ch+=k_data.id_produit;
    ch+= ',';
    i++;
}
ch = ch.substring(0, ch.length - 1) + ")";

您可以嘗試如下操作:

<script type="text/javascript">
     var finalArr = new Array();
     var dataArr = new Array();
     dataArr  = window.sessionStorage["cart1"];
     if (JSON.parse(dataArr).length > 0) {
            for (var i = 0; i < JSON.parse(dataArr).length; i++) {
                finalArr.push((JSON.parse(dataArr))[i]);
            }
     }
</script>

您不需要為此使用jQuery。 您用來進行字符串化的JSON對象具有解析函數:

var parsed = JSON.parse(window.sessionStorage["cart1"]);

如果仍然無法解決,則另一個未定義的對象可能存在問題。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM