如果之前已经问过这个问题,我会发出警告(这是我的第一个问题)。 我的字符串看起来像这样(在删除空格之后:
"#home #blog description of page here ##article1 ##article2 #contact"
解析时将返回json对象:
{
home: {},
blog: {
description: "description of page here",
pages: {
article1: {},
article2: {}
}
},
contact: {}
}
我想编写一个函数,它将一个字符串作为参数并返回一个json对象。有什么想法吗?
先谢谢。
答案 0 :(得分:1)
由于我不确定这项工作是如此明显,所以这是一个建议:
var str = "#home #blog description of page here ##article1 ##article2 #contact";
var m, r = /(#+)([^# ]+)/g, o = {}, s = [o];
while (m = r.exec(str)) {
var i = m[1].length - 1;
s[i+1] = s[i][m[2]] = {};
}
所需对象为o
。
请注意,它并不是全部,因为它是对通用解析解决方案的尝试,并且您提供的输入字符串不提供所有内容(“description”和“pages”键在哪里?)。请将其视为第一步,并鼓励定义更严格的通用格式。