在Java中解析JSON而不知道javascript中的JSON格式

时间:2018-06-05 12:48:40

标签: javascript jquery arrays json

Javascript中是否存在通过Java实现的this以下功能的等价物?

能够在不知道JSON格式的情况下迭代简单到复杂/嵌套的JSON结构。

我需要这个功能来获取所有最里面的键,并且保存直接值而不是对象/数组作为其值。

在此fiddle中,Object.keys()仅提供最外层的键。我希望能够得到(id,type)

console.log(Object.keys(x));

1 个答案:

答案 0 :(得分:1)

你可以自己构建它,只要递归地迭代对象的键,如果它是一个对象,请看这个小例子:

    const getAllPropertiesRecursively = (obj) => {
    const propertyKeys = [];
    Object.keys(obj).forEach(key => {
        const value = obj[key];
        if (value && !Array.isArray(value)) {
            if (value.toString() === '[object Object]') {
                propertyKeys.push(...getAllPropertiesRecursively(value));
            } else {
                propertyKeys.push({[key]: value}); // here you store the keys and values that are not array nor object
            }
        }
    });
    return propertyKeys;
}

所以当你这样调用这个方法时:

getAllPropertiesRecursively({a:1, b:2, c: { d: 1}, e: [1,2,3,4], f: {g:2}});

你得到一个像:

这样的数组

[{a: 1}, {b: 2}, {d: 1}, {g: 2}]

您可以使用注释编辑该行,以便按照您希望的方式存储数据