简体   繁体   English

使用 lodash 转换此 json 的最佳方法

[英]Best way to transform this json with lodash

I am starting with lodash and I need to transform this json:我从lodash开始,我需要转换这个 json:

{
    "keyA": "valA",
    "keyB": [
        "valB1",
        "valB2",
        "valB3",
        "valB4",
    ],
    "keyC": [
        "valC1",
        "valC2",
        "valC3",
        "valC4",
    ],
    "...": ["...","...","...","..."],
    "keyD": "valD"
}

to this json:到这个json:

[
    {
        "keyB":"valB1",
        "keyC":"valC1"
    },
    {
        "keyB":"valB2",
        "keyC":"valC2"
    },
    {
        "keyB":"valB3",
        "keyC":"valC3"
    },
    {
        "keyB":"valB4",
        "keyC":"valC4"
    },
]

keyB , keyC and other array keys always have the same size. keyBkeyC和其他数组键始终具有相同的大小。

Those keys which are not arrays I have to ignore them.那些不是数组的键我必须忽略它们。

any idea?任何的想法? thanks.谢谢。

Something like this?像这样的东西?

var o = {
    "keyA": "valA",
    "keyB": [
        "valB1",
        "valB2",
        "valB3",
        "valB4",
    ],
    "keyC": [
        "valC1",
        "valC2",
        "valC3",
        "valC4",
    ],
    "keyD": "valD",
    "keyE": [
        "valE1",
        "valE2",
        "valE3",
        "valE4",
    ]
};

var r = [];

_.each(o, function(v, k) {
   if (_.isArray(v)) {
       _.each(v, function(v2, i) {
           r.length <= i && r.push({});
           r[i][k] = v2;
       });
   }
});

console.log(r);

Fiddle: http://jsfiddle.net/ferahl/1rjx3tL8/小提琴: http : //jsfiddle.net/ferahl/1rjx3tL8/

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM