首页 文章

将新数组元素添加到JSON对象

提问于
浏览
86

我有一个JSON格式对象,我从一个名为teamJSON的变量中的JSON文件中读取,如下所示:

{"theTeam":[{"teamId":"1","status":"pending"},{"teamId":"2","status":"member"},{"teamId":"3","status":"member"}]}

我想在数组中添加一个新项,例如

{"teamId":"4","status":"pending"}

结束

{"theTeam":[{"teamId":"1","status":"pending"},{"teamId":"2","status":"member"},{"teamId":"3","status":"member"},{"teamId":"4","status":"pending"}]}

在写回文件之前 . 添加到新元素的好方法是什么?我接近但所有双引号都被逃脱了 . 我已经找到了一个很好的答案,但没有一个完全覆盖这个案例 . 任何帮助表示赞赏 .

4 回答

  • 0

    JSON只是一种表示法;进行所需的更改parse它以便您可以将更改应用于本机JavaScript对象,然后stringify返回JSON

    var jsonStr = '{"theTeam":[{"teamId":"1","status":"pending"},{"teamId":"2","status":"member"},{"teamId":"3","status":"member"}]}';
    
    var obj = JSON.parse(jsonStr);
    obj['theTeam'].push({"teamId":"4","status":"pending"});
    jsonStr = JSON.stringify(obj);
    // "{"theTeam":[{"teamId":"1","status":"pending"},{"teamId":"2","status":"member"},{"teamId":"3","status":"member"},{"teamId":"4","status":"pending"}]}"
    
  • 167
    var Str_txt = '{"theTeam":[{"teamId":"1","status":"pending"},{"teamId":"2","status":"member"},{"teamId":"3","status":"member"}]}';
    

    如果你想 add at last position 然后使用代码

    var parse_obj = JSON.parse(Str_txt);
    parse_obj['theTeam'].push({"teamId":"4","status":"pending"});
    Str_txt = JSON.stringify(parse_obj);
    Output //"{"theTeam":[{"teamId":"1","status":"pending"},{"teamId":"2","status":"member"},{"teamId":"3","status":"member"},{"teamId":"4","status":"pending"}]}"
    

    而且,如果你想 add at first position 然后使用代码

    var parse_obj = JSON.parse(Str_txt);
    parse_obj['theTeam'].unshift({"teamId":"4","status":"pending"});
    Str_txt = JSON.stringify(parse_obj);
    Output //"{"theTeam":[{"teamId":"4","status":"pending"},{"teamId":"1","status":"pending"},{"teamId":"2","status":"member"},{"teamId":"3","status":"member"}]}"
    

    并且,任何人想要 add at a certain position 的数组然后尝试下面的代码

    fruits['theTeam'].splice(2, 0, {"teamId":"4","status":"pending"});
    Output //"{"theTeam":[{"teamId":"1","status":"pending"},{"teamId":"2","status":"member"},{"teamId":"4","status":"pending"},{"teamId":"3","status":"member"}]}"
    

    上面的代码块在第二个元素后添加一个元素 .

  • 16

    首先,我们需要解析JSON对象,然后我们可以添加一个项目 .

    var str = '{"theTeam":[{"teamId":"1","status":"pending"},
    {"teamId":"2","status":"member"},{"teamId":"3","status":"member"}]}';
    
    var obj = JSON.parse(str);
    obj['theTeam'].push({"teamId":"4","status":"pending"});
    str = JSON.stringify(obj);
    

    最后我们 JSON.stringify 把obj带回了json

  • 1

    例如,这里有一个元素,比如用于将项目添加到购物篮的按钮以及用于保存在localStorage中的相应属性 .

    '<a href="#" cartBtn pr_id='+e.id+' pr_name_en="'+e.nameEn+'" pr_price="'+e.price+'" pr_image="'+e.image+'" class="btn btn-primary"><i class="fa fa-shopping-cart"></i>Add to cart</a>'
    
    var productArray=[];
    
    
    $(document).on('click','[cartBtn]',function(e){
      e.preventDefault();
      $(this).html('<i class="fa fa-check"></i>Added to cart');
      console.log('Item added ');
      var productJSON={"id":$(this).attr('pr_id'), "nameEn":$(this).attr('pr_name_en'), "price":$(this).attr('pr_price'), "image":$(this).attr('pr_image')};
    
    
      if(localStorage.getObj('product')!==null){
        productArray=localStorage.getObj('product');
        productArray.push(productJSON);  
        localStorage.setObj('product', productArray);  
      }
      else{
        productArray.push(productJSON);  
        localStorage.setObj('product', productArray);  
      }
    
    
    });
    
    Storage.prototype.setObj = function(key, value) {
        this.setItem(key, JSON.stringify(value));
    }
    
    Storage.prototype.getObj = function(key) {
        var value = this.getItem(key);
        return value && JSON.parse(value);
    }
    

    将JSON对象添加到Array结果后(在LocalStorage中):

    [{“id”:“99”,“nameEn”:“Product Name1”,“price”:“767”,“image”:“1462012597217.jpeg”},{“id”:“93”,“nameEn” :“Product Name2”,“price”:“76”,“image”:“1461449637106.jpeg”},{“id”:“94”,“nameEn”:“Product Name3”,“price”:“87” , “图像”: “1461449679506.jpeg”}]

    在此操作之后,您可以轻松地将数据作为List中的Java发送到服务器

    完整的代码示例在这里

    How do I store a simple cart using localStorage?

相关问题