Javascript 从类似JSON的字符串-Regex生成有效的JSON?

Javascript 从类似JSON的字符串-Regex生成有效的JSON?,javascript,json,regex,Javascript,Json,Regex,我有一个类似JSON的字符串,看起来像: {key1:my.value1,key2:value2} 它不能有任何嵌套对象或数组。 我甚至可以证明正则表达式总是这样 var re=/^\{[A-Z0-9.\]+:[A-Z0-9.\]+(,[A-Z0-9.\]+:[A-Z0-9.\]+)*}$/i; console.log(re.test({key1:my.value1,key2:value2}')//true如果它始终是那种格式,我可能会执行以下操作: 修剪花括号 将剩余字符串按,拆分,然后

我有一个类似JSON的字符串,看起来像:

{key1:my.value1,key2:value2}
它不能有任何嵌套对象或数组。 我甚至可以证明正则表达式总是这样

var re=/^\{[A-Z0-9.\]+:[A-Z0-9.\]+(,[A-Z0-9.\]+:[A-Z0-9.\]+)*}$/i;

console.log(re.test({key1:my.value1,key2:value2}')//true
如果它始终是那种格式,我可能会执行以下操作:

  • 修剪花括号
  • 将剩余字符串按
    拆分,然后得到如下数组:
    ['key:my.value1','key2:my.value2']
  • 迭代该列表中的所有条目,并按
    拆分每个条目,这将为您提供键/值对

如果您只需要迭代整个实体,那么就可以开始了。如果要将其转换为json,请创建一个新映射并将键/值对放入其中

如果您确定格式,只需将每个
key:value
对用引号括起来,就可以创建一个JSON字符串

var str='{key1:my.value1,key2:value2}',
rx=/([A-Z0-9.+):([A-Z0-9.+)/gi;
log(JSON.parse(str.replace(rx,“$1”:“$2”)这样可以吗。->

function makeJsonString(v) {
    var s = v.split(/({|}|:|,)/g).
        filter(function (e) { return e.length !== 0 }),
        r = '{}:,';
    for (var l = 0; l < s.length; l ++) {
        var x = s[l];
        if (r.indexOf(x) < 0) {
           s[l] = '"' + s[l] + '"';
        }
    }
    return s.join('');
}

var x = makeJsonString('{key1:my.value1,key2:value2}');
//parse check
console.log(JSON.parse(x));
函数makeJsonString(v){
var s=v.split(/({124;}}:|,)/g)。
过滤器(函数(e){返回e.length!==0}),
r='{}:',';
对于(var l=0;l

示例->

我们是否假设
my
my.value1
value2
都是在当前范围内定义的?您好@Phil,它实际上是字符串,所以值也应该始终是字符串,请检查我的editnice方法:)我推荐@Phill one,不过您对这个解决方案很满意。