Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/373.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何使用jquery解析读取的json元素_Javascript_Jquery_Json - Fatal编程技术网

Javascript 如何使用jquery解析读取的json元素

Javascript 如何使用jquery解析读取的json元素,javascript,jquery,json,Javascript,Jquery,Json,我必须在我的移动应用程序中创建购物车系统,我想存储id和产品数量,id应该是我数组的键(用于修改产品数量),尝试使用object而不是数组,但我得到错误:当我尝试读取json变量时,undefined不是一个函数 通过JSON.stringify(cart) 我的购物车代码如下 var cart = []; var produit = {}; produit['qte'] = $('.'+id_prd).text(); produit['id_produit'] = id_prd; cart[

我必须在我的移动应用程序中创建购物车系统,我想存储id和产品数量,id应该是我数组的键(用于修改产品数量),尝试使用object而不是数组,但我得到错误:当我尝试读取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}}
当我试图用

 var parsed = $.parseJSON(window.sessionStorage["cart1"]);
我得到错误“未定义不是函数” 当使用triying读取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++;
 });
 }
var i=0;
for(已解析的k){
var k_data=已解析[k];
k_data.forEach(函数(条目){
警报(输入);
ch+=入口id\u产品;

如果(i您可以尝试以下方法:

<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>

var finalArr=新数组();
var dataArr=新数组();
dataArr=window.sessionStorage[“cart1”];
if(JSON.parse(dataArr.length>0){
for(var i=0;i
您不需要jQuery来完成此操作。您用于stringify的同一个JSON对象具有解析函数:

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

如果这种情况仍然存在,那么另一个未定义的对象可能有问题。

问题在于您使用的是
k_数据。forEach(函数(条目)
但是forEach用于数组,k_数据只是一个简单的javascript对象

尝试更改:

k_data.forEach(函数(条目){

为此:

$(k_数据)。每个(函数(条目){

更重要的是,如果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) + ")";

JSON.parse(jsonString)
删除id_produit前面的双引号这是一个输入错误我将编辑我的问题是“parse”和“parse1”同一个变量?@chepe263是的这也是一个输入错误,我真的很困惑我得到了这个对象{7:Object,8:Object}7:对象8:对象原型:对象CanAny1电话为什么你否决了我的答案?它怎么没用?谢谢你这就是我要找的