将字符串解析为字典

时间:2014-12-23 14:14:27

标签: javascript arrays json parsing

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

"{lastname=Oba, firstname=Bar}"

var person = [];
person["firstName"] = "Bar";
person["lastName"] = "Oba";

我尝试使用JSON解析但不能正常工作, 我不知道如何没有脏分裂

2 个答案:

答案 0 :(得分:0)

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

的Python

s = "{lastname=Oba, firstname=Bar}"

l = s[1:-1].split(",")
d = {}
for e in l:
    a = e.split("=")
    d[a[0].strip()] = a[1].strip()

的JavaScript

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();
}

答案 1 :(得分:0)

这段代码应该很容易解析这个。

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
    }, {});
}

它只能用于一小组属性和数据的预期工作,但找出这些情况并修复这种行为是留给读者的练习。