我想以高貴的方式這種字符串變換:解析字符串轉換成字典
"{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