javascript - 关联数组 : cannot set property of undefined

标签 javascript jquery json

我必须从 JSON 文件中检索数据,然后将其分配给数组。但是我收到一个错误

"Cannot set property 'ref' of undefined".

将 JSON 转换为关联数组或对象。

 var items2=[[]]; 
 $.getJSON("results.json", function( data ) {
      $.each( data, function( key, val ) {
                if(key=="items")
                {
                    $.each(val,function(keyScd,valScd)
                    {
                        $.each(valScd,function(keyTrd,valTrd)
                    {
                        var ref=JSON.stringify(valTrd.ref).slice(1,-1);
                        var prix=JSON.stringify(valTrd.prix).slice(1,-1);
                        var taille=JSON.stringify(valTrd.taille).slice(1,-1);

                        items2[keyScd][keyTrd]["ref"]=ref;
                        items2[keyScd][keyTrd]["prix"]=prix;
                        items2[keyScd][keyTrd]["taille"]=taille;


                     });
                 });
                }
                else
                {
                        items2[key]=val;
                }
            });
        });

这是我的 JSON

  {  
       "items":[  
          [  
             {  
                "ref":"cpe-zfmmpx23",
                "nomc":"1",
                "description":"yellow sofa",
                "dispo":"1",
                "prix":"300",
                "taille":"standard",
                "couleur":"jaune"
             },
             {  
                "ref":"cpe-zfmmpx23",
                "nomc":"2",
                "description":"yellow sofa",
                "dispo":"1",
                "prix":"400",
                "taille":"0.5mH,2mW",
                "couleur":"red"
             }
          ]
       ],
       "buildNumber":"fa36b5153f33240a111e6dc336a70"
    }

最佳答案

您应该能够映射元素。这就是你想要的吗?

var temp = `{"items":[[{"ref":"cpe-zfmmpx23","nomc":"1","description":"yellow sofa","dispo":"1","prix":"300","taille":"standard","couleur":"jaune"},{"ref":"cpe-zfmmpx23","nomc":"2","description":"yellow sofa","dispo":"1","prix":"400","taille":"0.5mH,2mW","couleur":"red"}]],"buildNumber":"fa36b5153f33240a111e6dc336a70"}
`;

var data = JSON.parse(temp);
var items2;

if (data.items) {
  items2 = $.map(data.items, function(items) {
    return $.map(items, function(item) {
      return {
        ref: item.ref.slice(1, -1),
        prix: item.prix.slice(1, -1),
        taille: item.taille.slice(1, -1)
      };
    });
  });
}

console.log(items2);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

关于javascript - 关联数组 : cannot set property of undefined,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50414100/

相关文章:

javascript - 单元测试 Vue 组件 - Jest 设置 - 意外的标识符错误

javascript - 使用 puppeteer 的提示

javascript - 通过 "each"创建对象并自动命名

javascript - Jquery不显示从db获取的值

javascript - 尝试使用 XMLHttpRequest 获取 JSON 对象失败并导致引用为空

javascript - react 滚动组件以查看溢出隐藏元素内部

javascript - 使用左连接在 while 循环中获取数据

python - ValueError:使用python导入JSON文件时嵌入了空字符

c# - MVC Jquery 全局化 - 验证小数

Python:更改列表类型以进行 json 解码