js 怎么把 "{\"field_name\":石首牧原11场生长场,\"isAuto\":0},{\"field_name\":石首牧原12场生长场,\"isAuto\":0}"格式转为 [{field_name:石首牧原11场生长场,isAuto:0},{field_name:石首牧原12场生长场,isAuto:0}]
时间: 2023-07-05 08:31:31 浏览: 34
你可以使用 JSON.parse() 方法将 JSON 格式的字符串转成 JavaScript 对象,然后再使用 Array.map() 方法将每个对象的键名转为没有引号的形式,最后返回一个新的数组。具体代码如下:
```
const str = '{"field_name":"石首牧原11场生长场","isAuto":0},{"field_name":"石首牧原12场生长场","isAuto":0}';
const arr = str.split('},{').map((item, index) => {
if (index === 0) {
item = item.slice(1);
} else if (index === str.split('},{').length - 1) {
item = item.slice(0, -1);
}
return JSON.parse(`{${item}}`);
}).map(item => {
const newObj = {};
Object.keys(item).forEach(key => {
newObj[key.replace(/"/g, '')] = item[key];
});
return newObj;
});
console.log(arr);
```
这样就可以得到你想要的结果了。
相关问题
js 怎么把 '{"field_name":灌南牧原有机物处置中心,"isAuto":0}' 格式转为 {field_name:灌南牧原有机物处置中心,isAuto:0}
同样可以使用 JSON.parse() 方法将 JSON 字符串转换为 JavaScript 对象,但是由于该 JSON 字符串中的属性名和属性值都没有用双引号包裹,所以需要手动添加双引号,然后再使用 JSON.parse() 方法进行转换。可以使用 replace() 方法和正则表达式将属性名和属性值添加双引号。示例代码如下:
```
const jsonString = '{"field_name":灌南牧原有机物处置中心,"isAuto":0}';
const jsonObject = JSON.parse(jsonString.replace(/([{,])([^"]+?):/g, '$1"$2":').replace(/([^"]+),/g, '"$1",'));
console.log(jsonObject);
```
输出结果为:
```
{ field_name: '灌南牧原有机物处置中心', isAuto: 0 }
```
js 怎么把 "{\"field_name\":灌南牧原有机物处置中心,\"isAuto\":0}" 格式转为 {field_name:灌南牧原有机物处置中心,isAuto:0}
可以使用 JSON.parse() 方法将 JSON 字符串转换为 JavaScript 对象,然后使用对象的属性名访问属性值。但是由于该 JSON 字符串中的属性名和属性值都包含在双引号中,所以需要对其进行处理。可以使用 replace() 方法和正则表达式将双引号去掉,然后再使用 JSON.parse() 方法进行转换。示例代码如下:
```
const jsonString = "{\"field_name\":灌南牧原有机物处置中心,\"isAuto\":0}";
const jsonObject = JSON.parse(jsonString.replace(/\\\"/g, '"'));
console.log(jsonObject);
```
输出结果为:
```
{ field_name: '灌南牧原有机物处置中心', isAuto: 0 }
```