【问题标题】:how to add 2 element in nested array from one root element using JOLT specification?如何使用 JOLT 规范从一个根元素向嵌套数组中添加 2 个元素?
【发布时间】:2019-11-20 09:55:38
【问题描述】:

输入:

{
"k1": "v1",
"k2": "v2",
"event": "SUMMARY"
}

预期输出:

{
  "k1": "v1",
  "k2": "v2",
  "event": "SUMMARY",
  "arr": [
    {
      "k1": "v1",
      "key": "first"
    },
    {
      "k2": "v2",
      "key": "second"
    },
    {
      "summary1": "s1",
      "key": "SUMMARY"
    },
    {
      "summary1": "s2",
      "key": "SUMMARY"
    }
  ]
}

对于每个'k1'和'k2',各自的数组元素应该添加为

{
"k2": "v2",
"key": "second"
}

当 event = "SUMMARY" 时,应分别添加 2 个元素

{
"summary1": "s1",
"key": "SUMMARY"
},
{
"summary2": "s2",
"key": "SUMMARY"
}

请帮助了解 JOLT 规范

【问题讨论】:

    标签: arrays json jolt


    【解决方案1】:

    由于您根据我写的内容提供了输入和输出 javascript 中的一个函数。

    { “k1”:“v1”, “k2”:“v2”, “事件”:“摘要” }

    该功能仅适用于上述输入

    而且您还必须提到您是否想要以哪种语言输出...

    //Input
    
    var obj = {
        "k1": "v1",
        "k2": "v2",
        "event": "SUMMARY"
    }
    
    //funciton calling 
    obj["arr"] = checkThis(obj);
    
    
    
    //output
    console.log(obj)
    
    
    
    
    function checkThis(obj) {
        var arr = [];
        Object.keys(obj)
            .forEach(function eachKey(key) {
                if (key == "k1") {
                    var tempObj = {}
                    tempObj["k1"] = obj[key];
                    tempObj["key"] = "first";
                    arr.push(tempObj)
                } else if (key == "k2") {
                    var tempObj = {}
                    tempObj["k2"] = obj[key];
                    tempObj["key"] = "second";
                    arr.push(tempObj)
                } else if (key == "event") {
                    var tempObj1 = {}
                    var tempObj2 = {}
                    tempObj1["summary1"] = "s1";
                    tempObj1["key"] = obj[key];
                    tempObj2["summary1"] = "s2";
                    tempObj2["key"] = obj[key];
                    arr.push(tempObj1)
                    arr.push(tempObj2)
                }
            });                        
    return arr;
    }

    【讨论】:

    • 感谢您尝试,但正如问题标题中提到的,我需要 JOLT 规范来处理这个不是 javascript 代码。 JOLT 参考:github.com/bazaarvoice/jolt
    猜你喜欢
    • 1970-01-01
    • 2021-03-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-04-17
    • 1970-01-01
    相关资源
    最近更新 更多