当前位置:  开发笔记 > 编程语言 > 正文

JSON从最后一个对象中删除trailiing逗号

如何解决《JSON从最后一个对象中删除trailiing逗号》经验,为你挑选了1个好方法。

这个JSON数据正在动态插入到我正在处理的模板中.我正在尝试从对象列表中删除尾随逗号.

我正在使用的CMS使用Velocity,我还不太熟悉.所以我希望编写一段JavaScript代码来检测最后一个对象(ITEM2)上的尾随逗号并将其删除.是否有一个REGEX,我可以用来检测任何逗号之前的逗号?

[  
   {  
      "ITEM1":{  
         "names":[  
            "nameA"
         ]
      }
   },
   {  
      "ITEM2":{  
         "names":[  
            "nameB",
            "nameC"
         ]
      }
   }, // need to remove this comma!
]

Dmitry Parzh.. 17

你需要找到,,之后没有任何新的属性,对象或数组.
新属性可以使用引号("')或任何单词字符(\w)开头.
新对象只能从字符开始{.
新数组只能从字符开始[.
新属性,对象或数组可以放在一堆类似空格的符号(\s)之后.

所以,正则表达式将是这样的:

let regex = /\,(?!\s*?[\{\[\"\'\w])/g;

像这样使用它:

// javascript
let input; // this is the initial string of data
let correct = input.replace(regex, ''); // remove all trailing commas
let data = JSON.parse(correct); // build a new JSON object based on correct string

试试第一个正则表达式.


另一种方法是找到每一个,,之后有一个结束括号.
在这种情况下,结束括号是}].
同样,关闭括号可能放在一堆类似空格的符号(\s)之后.

因此正则表达式:

let regex = /\,(?=\s*?[\}\]])/g;

用法是一样的.

试试第二个正则表达式.



1> Dmitry Parzh..:

你需要找到,,之后没有任何新的属性,对象或数组.
新属性可以使用引号("')或任何单词字符(\w)开头.
新对象只能从字符开始{.
新数组只能从字符开始[.
新属性,对象或数组可以放在一堆类似空格的符号(\s)之后.

所以,正则表达式将是这样的:

let regex = /\,(?!\s*?[\{\[\"\'\w])/g;

像这样使用它:

// javascript
let input; // this is the initial string of data
let correct = input.replace(regex, ''); // remove all trailing commas
let data = JSON.parse(correct); // build a new JSON object based on correct string

试试第一个正则表达式.


另一种方法是找到每一个,,之后有一个结束括号.
在这种情况下,结束括号是}].
同样,关闭括号可能放在一堆类似空格的符号(\s)之后.

因此正则表达式:

let regex = /\,(?=\s*?[\}\]])/g;

用法是一样的.

试试第二个正则表达式.


这也将替换逗号的内部字符串,例如{“ letters”:“ a,b,c”}。以下仅检查结尾的逗号:fix.replace(/(。*?),\ s *(\} | \])/ g,“ $ 1 $ 2”);
推荐阅读
路人甲
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有