需要使用javascript将字符串转换为JSON的算法吗

需要使用javascript将字符串转换为JSON的算法吗,javascript,json,algorithm,loops,recursion,Javascript,Json,Algorithm,Loops,Recursion,我正在为ID的历史调用api,该ID返回如下所示的字符串对象: { "name": "09304790130000", "children": [{ "name": "09304790090000", "children": [{ "name": "09304790010000", "children": [{ "name": "04 2322-003"

我正在为ID的历史调用api,该ID返回如下所示的字符串对象:

{
    "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"
                }]
            }]
        }]
    }]
}
09304790130000--093047900000
09304790130000--09304790120000
09304790000--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。

这里的输入是自定义格式的。你需要处理的是一个问题。(虽然您的格式可能很简单,不需要一个完整的正则表达式函数,只需要在分隔符上拆分?)您需要做的是将输入字符串拆分,并在组件上循环,然后将其放入所需的数据结构中(听起来像是某种树)。高级伪代码类似于:

Take line of input.
Break on "--".
Create root node from the left side if the tree is empty, otherwise just find the existing node.
Add child from right side to the parent.
要将其转换为所需的JSON格式,可能还需要编写一个函数,该函数在树上进行迭代,并以该格式写入字符串。。。虽然如果您使用的是现有的库和数据类型,但这可能已经存在


编辑:要在最后一位展开,要获得所需的格式意味着树的一部分。在每个步骤中,您只需将格式和名称添加到JSON字符串中。应该具有您所需的功能,但显然,如果需要,您可以自己编写树数据结构和遍历函数。

在ECMAScript中,“字符串对象”是一个矛盾修饰法。@amphetamachine:实际上,没有--JavaScript(ECMAScript)既有字符串原语也有字符串对象。那么每一行都是前一行的子行吗?是否每行只有一个代码?是否将其发送到其他地方?JSON只是字符串的标记格式。我认为您真正想要的是将得到的字符串转换为JavaScript对象或数组(如果您继续发送,那么可以很容易地将其作为JSON返回)
042322-003
从何而来?您需要解释映射应该如何工作(在这个过程中,您可能只回答您自己的问题)。我很欣赏您的输入,特别是在其他人经常对语义有争议的情况下,但正是迭代循环让我挂断了电话。