扫码关注官方订阅号
var obj = '{name:1}';怎么把字符串去了,获取其中的属性和属性值
欢迎选择我的课程,让我们一起见证您的进步~~
你这个并不是一个规范的JSON格式,规范的格式应该是:
var obj = '{"name":1}';
这样的话可以运用:
JSON.parse(obj)
将字符串转化为一个对象。如果你不能改变你的字符串,就只能用正则去取了。。
你这是人工直接构造的字符串么,真不懂JSON字符串为什么要这么构造,这样子直接用JSON.parse是不行的,因为name两边没有引号...
JSON.parse
name
正常的你的JSON字符串应该是,首先有个JSON对象,再用JSON.stringify转化为JSON字符串,就可以用JSON.parse转化回来,这样的JSON字符串,属性名一定是带引号的
所以你的这个字符串要转的话,最好用正则,要么用正则直接去提取,要么用正则给属性名两边加上引号,然后用JSON.parse提取
var obj = '{ name :"hello", age:12}'; var objJStr=obj.replace(/([{,])\s*(\w+)\s*:/g,'$1"$2":'); console.log(JSON.parse(objJStr));//Object {name: "hello", age: 12}
假如你想用JSON解析,但是字符串里面的不是JSON的标准格式,key需要用“”括起来。不然的话需要自己切割字符串处理了。
正则
不知道怎么详细描述答案。。。。
又一个不规范JSON串的处理,怎么会有这么多的这种问题,可以用Function作处理
let result=(new Function("return "+ obj))(); let name=result.name
当然用eval也可以,不过不提倡用,要用的话最好在外面包一层作用域防止污染。
首先字符串并不是语法上规范的 JSON 字符串。
如果能保证数据是安全的:
var obj = '{name:1}'; obj = eval(`(${obj})`); // 如果不能保证 obj 字符串中的数据是否安全,慎用 console.log(obj); // 此时 obj 是一个对象了,可以获取属性 console.log(obj.name); console.log(JSON.stringify(obj)); // 转换成正常的 JSON 字符串了
微信扫码关注PHP中文网服务号
QQ扫码加入技术交流群
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
PHP学习
技术支持
返回顶部
你这个并不是一个规范的JSON格式,规范的格式应该是:
这样的话可以运用:
将字符串转化为一个对象。
如果你不能改变你的字符串,就只能用正则去取了。。
你这是人工直接构造的字符串么,真不懂JSON字符串为什么要这么构造,这样子直接用
JSON.parse是不行的,因为name两边没有引号...正常的你的JSON字符串应该是,首先有个JSON对象,再用JSON.stringify转化为JSON字符串,就可以用JSON.parse转化回来,这样的JSON字符串,属性名一定是带引号的
所以你的这个字符串要转的话,最好用正则,要么用正则直接去提取,要么用正则给属性名两边加上引号,然后用JSON.parse提取
假如你想用JSON解析,但是字符串里面的不是JSON的标准格式,key需要用“”括起来。不然的话需要自己切割字符串处理了。
正则
不知道怎么详细描述答案。。。。
又一个不规范JSON串的处理,怎么会有这么多的这种问题,可以用Function作处理
当然用eval也可以,不过不提倡用,要用的话最好在外面包一层作用域防止污染。
首先字符串并不是语法上规范的 JSON 字符串。
如果能保证数据是安全的: