当前位置: 首页 > 面试题库 >

使用JQuery将定界字符串转换为分层JSON

江雅懿
2023-03-14
问题内容

我有一个字符串数组,用破折号分隔来描述父/子关系。因此,如果鲍勃的老板是吉姆,而吉姆的老板是弗雷德,则鲍勃在数组中的条目将是“弗雷德-吉姆-
鲍勃”,而吉姆的条目将是“弗雷德-吉姆”。我没有能力更改数据输入的方式,因此我一直在寻求帮助,以将这些值转换为类似于以下内容的JSON的最佳方法:

{
    "name": "Fred",
    "children": {
        "name": "Jim",
        "children": {
            "name": "Bob"
        }
    }
}

任何帮助将不胜感激。谢谢。


问题答案:
var input = ["Fred-Jim-Bob", "Fred-Jim", "Fred-Thomas-Rob", "Fred"];
var output = [];
for (var i = 0; i < input.length; i++) {
    var chain = input[i].split("-");
    var currentNode = output;
    for (var j = 0; j < chain.length; j++) {
        var wantedNode = chain[j];
        var lastNode = currentNode;
        for (var k = 0; k < currentNode.length; k++) {
            if (currentNode[k].name == wantedNode) {
                currentNode = currentNode[k].children;
                break;
            }
        }
        // If we couldn't find an item in this list of children
        // that has the right name, create one:
        if (lastNode == currentNode) {
            var newNode = currentNode[k] = {name: wantedNode, children: []};
            currentNode = newNode.children;
        }
    }
}

输出JSONify为:

[{
    "name": "Fred",
    "children": [{
        "name": "Jim",
        "children": [{
            "name": "Bob",
            "children": []
        }]
    }, {
        "name": "Thomas",
        "children": [{
            "name": "Rob",
            "children": []
        }]
    }]
}]


 类似资料:
  • 问题内容: 我以前使用下面的查询将逗号分隔的字符串转换为行- 但是,现在我的分隔符是-‘〜^’ 我不能对此定界符使用相同的查询。 我预计 - 柱子 请帮忙 或如果提供的定界符为〜^,则有可能获取第n个元素 最好的祝福 问题答案: 简化此方法以拆分字符串,同时允许null: 与链接的答案一样,它会非贪婪地寻找任何字符,然后是(插入符号是转义的)或行尾的组合。该电话还采用了可选的参数指定-所以只得到了

  • 我只是无法在c中转换不同的数据类型,我知道c是一种强类型语言,所以我在这里使用了,但我面临一个问题,错误消息是 从“std::string{aka std::basic_string}类型转换为“int”类型的static_

  • 问题内容: 我有一个mysql旧表,其中包含一个客户端标识符和一个项目列表,后者为逗号分隔的字符串。例如。这是旧的东西,用户坚持要能够编辑以逗号分隔的字符串。 现在,他们需要一个报表,上面的报表分为不同的行,例如 将字符串分成子字符串很容易做到,我已经编写了一个过程来创建一个单独的表,但这需要触发器来处理删除,更新和插入。此查询很少需要(例如每月一次),但在运行时必须绝对最新,因此例如,不保证触发

  • 问题内容: 说我有以下字符串: 我想将其拆分为句子,以便获得以下列表: 如您所见,我想在所有出现的字符串上拆分字符串,而不是在或的任何出现上进行拆分。在这种情况下,Python将无法正常工作,因为它将字符串的每个字符都视为一个单独的定界符,而不是将整个字符串视为一个多字符定界符。有解决此问题的简单方法吗? 问题答案: 为我工作

  • 问题内容: 问题:转弯 进入 Perl支持可以在替换字符串中使用的“ \ L”操作。 模式类不支持此操作: 此类不支持的Perl构造:[…]预处理操作\ l \ u,\ L和\ U。 https://docs.oracle.com/javase/10/docs/api/java/util/regex/Pattern.html 问题答案: 您无法在Java正则表达式中执行此操作。您必须使用和手动进行

  • 我有一个RestController类,它有一个方法可以根据电影的标题搜索电影: 如果我发送一个json字符串 从邮递员到endpoint,我收到一个空白的回复。 然后我做了一个 就在进入方法后找到字符串filmSearch正是我从邮递员发送的JSON字符串。我的应用程序没有看到JSON和提取值从filmSearch在我的请求附加到应用程序内字符串filmSearch. 如果我移除 在请求映射的一