【发布时间】:2014-09-02 17:06:50
【问题描述】:
我正在调用一个 api 来获取一个 ID 的历史记录,它返回一个如下所示的字符串对象:
09304790130000--09304790090000
09304790130000--09304790120000
09304790090000--09304790010000
09304790120000--09304790020000
09304790120000--09304790030000
09304790120000--09304790110000
09304790110000--09304790050000
09304790010000--042322003
09304790020000--042322002
09304790030000--042322001
09304790050000--042322004
如果我能弄清楚如何使用 JavaScript 将其转换为 JSON,我可以用它做更多事情,所以它看起来像这样:
{
"name": "09304790130000",
"children": [{
"name": "09304790090000",
"children": [{
"name": "09304790010000",
"children": [{
"name": "04 2322-003"
}]
}]
}, {
"name": "09304790120000",
"children": [{
"name": "09304790020000",
"children": [{
"name": "04 2322-002"
}]
}, {
"name": "09304790030000",
"children": [{
"name": "04 2322-001"
}]
}, {
"name": "09304790110000",
"children": [{
"name": "09304790050000",
"children": [{
"name": "04 2322-004"
}]
}]
}]
}]
}
有没有一种算法可以构建我需要的对象,而不管“树”变得多么复杂?
为清楚起见编辑: 字符串中的“--”表示ID的关系。左侧 ID 是短划线右侧 ID 的父级。所以我提供给 api 的 ID,“09304790130000”有两个孩子,每个孩子都可以有更多的孩子,直到他们达到当前的 9 位 ID。
【问题讨论】:
-
在 ECMAScript 中,“字符串对象”是矛盾的。
-
@amphetamachine:实际上,没有——JavaScript (ECMAScript) 既有字符串原语,也有字符串对象。
-
那么每一行都是前一行的子行吗?每行只有一个代码吗?
-
你是把它寄到别的地方吗? JSON 只是字符串的一种标记格式。我认为您真正想要的是将获得的字符串转换为 JavaScript 对象或数组(如果您进一步发送,则可以轻松地将其作为 JSON 返回)?
-
那么
04 2322-003来自哪里?您需要解释映射应该如何工作(在此过程中,您可能只是回答自己的问题)。
标签: javascript json algorithm loops recursion