Javascript 将随机字符串转换为实际JSON对象的最简单方法
我有一个看起来几乎像有效json的字符串:Javascript 将随机字符串转换为实际JSON对象的最简单方法,javascript,javascript-objects,Javascript,Javascript Objects,我有一个看起来几乎像有效json的字符串: “Url:localhost/2.0/facebook,用户名:ted,用户值:4” 如何将其转换为有效的json,以便在执行str.Url操作时获得“localhost/2.0/facebook”等信息?您可以通过以下方式执行此操作 let str=“Url:localhost/2.0/facebook,用户名:ted,用户值:4”; 让结果={} str.replace(/([^:]+):\s*([^,]+),?/g,函数(a,b,c){ 结果[
“Url:localhost/2.0/facebook,用户名:ted,用户值:4”
如何将其转换为有效的json,以便在执行
str.Url
操作时获得“localhost/2.0/facebook”等信息?您可以通过以下方式执行此操作
let str=“Url:localhost/2.0/facebook,用户名:ted,用户值:4”;
让结果={}
str.replace(/([^:]+):\s*([^,]+),?/g,函数(a,b,c){
结果[b]=c;
})
控制台日志(结果)
如果您确定您的模式,并且任何键或值都不会包含、
和:
,那么您可以尝试先按、
拆分,以获取每个键值对,然后按:
拆分每对,以获取每对的键和值
var str=“Url:localhost/2.0/facebook,用户名:ted,用户值:4”;
var obj=str.split(“,”).reduce((i,e)=>{
var kv=e.分裂(“:”),
v=kv[1]。微调();
i[kv[0]]=isNaN(v)?v:v;
返回i;
}, {})
console.log(obj)
您只需在正则表达式的帮助下使用string replace将键和值放入引号(“)中,然后使用JSON.parse
将字符串转换为JSON对象
let url=“url:localhost/2.0/facebook,用户名:ted,用户值:4”;
url=url.replace(/(.*):\s?(.*),/g,“$1”:“$2”,\n”)。replace(/(.*):\s?(.*)$/,“$1”:“$2”);
console.log(JSON.parse(`{${url}}`);
字符串的模式将始终是这样的?字符串从哪里获得的?如果用户名包含逗号等怎么办?模式将始终是这样的。是的,做得很好!显然,由于“用户值”由空格分隔,因此我必须像这样查询结果[“用户值”].我很欣赏你的逻辑.我会记住的。