将随机字符串转换为实际JSON对象的最简单方法

时间:2017-09-02 14:49:12

标签: javascript javascript-objects

我有以下字符串几乎看起来像有效的json:
"Url: localhost/2.0/facebook,User Name: ted,User Value: 4" 我怎样才能把它变成有效的json,这样如果我做str.Url我得到" localhost / 2.0 / facebook"例如?

3 个答案:

答案 0 :(得分:2)

你可以通过以下方式完成

let str = "Url: localhost/2.0/facebook,User Name: ted,User Value: 4";

let result = {}
str.replace(/([^:]+):\s*([^,]+),?/g, function(a, b, c){
    result[b] = c;
})

console.log(result);

答案 1 :(得分:0)

如果您确定自己的模式,并且任何键或值都不会包含,:,那么您可以尝试先按,拆分以获取每个键值配对,然后按:分割每对,以获得每对的关键字和值。



var str = "Url: localhost/2.0/facebook,User Name: ted,User Value: 4";
var obj = str.split(",").reduce((i,e)=>{
  var kv = e.split(":"),
      v = kv[1].trim();
  i[kv[0]] = isNaN(v) ? v : parseFloat(v) ;
  return i;
}, {})

console.log(obj)




答案 2 :(得分:0)

您可以在正则表达式的帮助下使用字符串替换,将键和值放在引号(")中,然后使用JSON.parse将字符串转换为JSON对象。



let url = "Url: localhost/2.0/facebook,User Name: ted,User Value: 4";
url = url.replace(/(.*?):\s?(.*?),/g, '"$1": "$2",\n').replace(/(.*):\s?(.*)$/, '"$1": "$2"');
console.log(JSON.parse(`{ ${url} }`));




```