我想以高贵的方式这种字符串变换:解析字符串转换成字典
"{lastname=Oba, firstname=Bar}"
到
var person = [];
person["firstName"] = "Bar";
person["lastName"] = "Oba";
我尝试用JSON解析,但没有工作, 我不不知道如何不肮脏splitting
我想以高贵的方式这种字符串变换:解析字符串转换成字典
"{lastname=Oba, firstname=Bar}"
到
var person = [];
person["firstName"] = "Bar";
person["lastName"] = "Oba";
我尝试用JSON解析,但没有工作, 我不不知道如何不肮脏splitting
这段代码应该很容易解析这个。
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
}, {});
}
它会如预期仅小群属性和DATAS的,但搞清楚这些情况下,修复该行为是阔叶锻炼的读者。
whao真的很好,谢谢 – gregouille
算法:
分裂的条纹
的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
:由,
克你会得到
A=B
对列表,然后通过
=
和形式字典拆分每个对名单
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();
}
它不是[JSON](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/JSON)因此JSON.parse不起作用 – epascarello
最上面的项目只是一个字符串,它不是JSON,因此JSON.parse不起作用 – TommyBs
确定它不是JSON,但它有一个简单的解析器吗? – gregouille