Javascript 将字符串解析为字典

Javascript 将字符串解析为字典,javascript,arrays,json,parsing,Javascript,Arrays,Json,Parsing,我想以一种优雅的方式转换这种字符串: “{lastname=Oba,firstname=Bar}” 到 我尝试使用JSON解析,但不起作用, 我不知道如何在没有肮脏拆分的情况下实现这一点算法: 按拆分字符串,您将获得a=B对的列表,然后按=拆分列表中的每对,并形成字典: 蟒蛇 s=“{lastname=Oba,firstname=Bar}” l=s[1:-1]。拆分(“,”) d={} 对于l中的e: a=e.split(“=”) d[a[0].strip()]=a[1].strip() J

我想以一种优雅的方式转换这种字符串:

“{lastname=Oba,firstname=Bar}”

我尝试使用JSON解析,但不起作用, 我不知道如何在没有肮脏拆分的情况下实现这一点

算法:
拆分字符串,
您将获得
a=B
对的列表,然后按
=
拆分列表中的每对,并形成字典:

蟒蛇

s=“{lastname=Oba,firstname=Bar}”
l=s[1:-1]。拆分(“,”)
d={}
对于l中的e:
a=e.split(“=”)
d[a[0].strip()]=a[1].strip()

JavaScript


这段代码应该很容易解析

function myParser(str) {
    return str.slice(1, -1).split(',').map(function(el) {
        return el.trim()
    }).map(function(el) {
        return el.split('=')
    }).reduce(function(result, pair) {
        result[pair[0].trim()] = pair[1].trim();
        return result
    }, {});
}

它只对一小部分属性和数据起到预期的作用,但计算这些情况和修复该行为留给读者作为练习。

这不是JSON.parse不起作用的原因。顶部的项只是一个字符串,不是JSON,因此JSON.parse不起作用。这不是JSON,但是它有一个简单的解析器吗?您需要拆分它和/或用正则表达式解析它。您需要编写解析器,或者让代码生成正确的JSON来启动!有什么东西反对拆分()?
var s = "{lastname=Oba, firstname=Bar}";

var l = s.slice(1,-1).split(',');
var d = {};
for (var i in l) {
    var a = l[i].split('=');
    d[a[0].trim()] = a[1].trim();
}
function myParser(str) {
    return str.slice(1, -1).split(',').map(function(el) {
        return el.trim()
    }).map(function(el) {
        return el.split('=')
    }).reduce(function(result, pair) {
        result[pair[0].trim()] = pair[1].trim();
        return result
    }, {});
}