繁体   English   中英

如何使用js在特定索引处删除json中的字符?

[英]How to remove a character in json at specific index using js?

我有一个JSON代码如下:

[  
   [  
      {  
         "title":"Shirt Front",
         "thumbnail":"http://ipadd/pub/media/catalog/product//b/l/blue-back_2.jpg",
         "elements":[  
            {  
               "type":"image",
               "source":"http://ipadd/pub/media/catalog/product//b/l/blue-back_2.jpg",
               "title":"Base",
               "parameters":{  
                  "left":325,
                  "top":329,
                  "colors":"#d59211",
                  "price":20,
                  "colorLinkGroup":"Base",
                  "fill":false
               }
            }
         ]
      },
      {  
         "title":"Shirt Front",
         "thumbnail":"http://ipadd/pub/media/catalog/product//b/l/blue-back_1_1.jpg",
         "elements":[  
            {  
               "type":"image",
               "source":"ipadd/pub/media/catalog/product//b/l/blue-back_1_1.jpg",
               "title":"Base",
               "parameters":{  
                  "left":325,
                  "top":329,
                  "colors":"#d59211",
                  "price":20,
                  "colorLinkGroup":"Base",
                  "fill":false
               }
            }
         ]
      },

   ]
]

我需要删除数组末尾的comma ,即。 json的最后两个字符前的逗号。 因此,上述json是无效的json。 我需要使用JS来实现。

假设您输入的是字符串,这是另一种方法。 它在字符串中找到逗号的最后一个索引,然后使用string.splice组装没有该逗号的新字符串。

 const JSON = `[ [ { "title":"Shirt Front", "thumbnail":"http://ipadd/pub/media/catalog/product//b/l/blue-back_2.jpg", "elements":[ { "type":"image", "source":"http://ipadd/pub/media/catalog/product//b/l/blue-back_2.jpg", "title":"Base", "parameters":{ "left":325, "top":329, "colors":"#d59211", "price":20, "colorLinkGroup":"Base", "fill":false } } ] }, { "title":"Shirt Front", "thumbnail":"http://ipadd/pub/media/catalog/product//b/l/blue-back_1_1.jpg", "elements":[ { "type":"image", "source":"ipadd/pub/media/catalog/product//b/l/blue-back_1_1.jpg", "title":"Base", "parameters":{ "left":325, "top":329, "colors":"#d59211", "price":20, "colorLinkGroup":"Base", "fill":false } } ] }, ] ]` lastComma = JSON.lastIndexOf(',') const JSONnew = JSON.slice(0, lastComma) + JSON.slice(lastComma + 1, JSON.length) console.log(JSONnew) 

您可以使用eval,但知道这很危险,此代码是有效的JavaScript

const json = `[  
   [  
      {  
         "title":"Shirt Front",
         "thumbnail":"http://ipadd/pub/media/catalog/product//b/l/blue-back_2.jpg",
         "elements":[  
            {  
               "type":"image",
               "source":"http://ipadd/pub/media/catalog/product//b/l/blue-back_2.jpg",
               "title":"Base",
               "parameters":{  
                  "left":325,
                  "top":329,
                  "colors":"#d59211",
                  "price":20,
                  "colorLinkGroup":"Base",
                  "fill":false
               }
            }
         ]
      },
      {  
         "title":"Shirt Front",
         "thumbnail":"http://ipadd/pub/media/catalog/product//b/l/blue-back_1_1.jpg",
         "elements":[  
            {  
               "type":"image",
               "source":"ipadd/pub/media/catalog/product//b/l/blue-back_1_1.jpg",
               "title":"Base",
               "parameters":{  
                  "left":325,
                  "top":329,
                  "colors":"#d59211",
                  "price":20,
                  "colorLinkGroup":"Base",
                  "fill":false
               }
            }
         ]
      },

   ]
]`

const validJsArray = eval(json)

JSON.stringify将为您清理。

var my_cool_object = [
        [
            {
                "title": "Shirt Front",
                "thumbnail": "http://ipadd/pub/media/catalog/product//b/l/blue-back_2.jpg",
                "elements": [
                    {
                        "type": "image",
                        "source": "http://ipadd/pub/media/catalog/product//b/l/blue-back_2.jpg",
                        "title": "Base",
                        "parameters": {
                            "left": 325,
                            "top": 329,
                            "colors": "#d59211",
                            "price": 20,
                            "colorLinkGroup": "Base",
                            "fill": false
                        }
                    }
                ]
            },
            {
                "title": "Shirt Front",
                "thumbnail": "http://ipadd/pub/media/catalog/product//b/l/blue-back_1_1.jpg",
                "elements": [
                    {
                        "type": "image",
                        "source": "ipadd/pub/media/catalog/product//b/l/blue-back_1_1.jpg",
                        "title": "Base",
                        "parameters": {
                            "left": 325,
                            "top": 329,
                            "colors": "#d59211",
                            "price": 20,
                            "colorLinkGroup": "Base",
                            "fill": false
                        }
                    }
                ]
            },
        ]
    ];
    var valid_json_string = JSON.stringify(my_cool_object);
var json = [ ...  ]
console.log(JSON.parse(JSON.stringify(json)));

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM