js 怎么把 '{"field_name":灌南牧原有机物处置中心,"isAuto":0}' 格式转为 {field_name:灌南牧原有机物处置中心,isAuto:0}
时间: 2023-07-19 18:25:31 浏览: 79
同样可以使用 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\":石首牧原11场生长场,\"isAuto\":0},{\"field_name\":石首牧原12场生长场,\"isAuto\":0}"格式转为 [{field_name:石首牧原11场生长场,isAuto:0},{field_name:石首牧原12场生长场,isAuto:0}]
你可以使用 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 对象,然后使用 Object.keys() 和 Array.reduce() 方法将其转换为所需的格式。具体代码如下:
```javascript
const jsonStr = '{"field_name":"灌南牧原有机物处置中心","isAuto":0}';
const jsonObj = JSON.parse(jsonStr);
const result = Object.keys(jsonObj).reduce((acc, key) => {
acc[key.replace(/\"/g, '')] = jsonObj[key];
return acc;
}, {});
console.log(result); // { field_name: '灌南牧原有机物处置中心', isAuto: 0 }
```
上面的代码中,先将 JSON 格式的字符串转换为 JavaScript 对象,然后使用 Object.keys() 方法获取对象的所有属性名,再使用 Array.reduce() 方法遍历所有属性名,将属性名中的双引号去掉并作为新的属性名,将原属性值作为新对象的属性值。最后得到所需的格式的对象。
阅读全文