微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Javascript:将 JSON 解析为字符串数组

如何解决Javascript:将 JSON 解析为字符串数组

我有以下 JSON 以下面的 set、key 和 value 方式定义。

[{
    "set1": {
        "key1": "value1"
    },"set2": {
        "key2": "value2"
    },"set3": {
        "key3": "value3"
    },"set4": {
        "key4": "value4"
    } 
}]

我想知道如何使用普通/本机 javascript 以下面的方式获取仅包含各种值的字符串数组。

["value1","value2","value3","value4"]

我尝试过使用 Object.keys 和 Object.values 但仍然没有运气。了解如何在纯 javascript 中处理它而不使用任何第三方库会很有帮助。

解决方法

解决办法:

const data = {
  "set1": {
    "key1": "value1"
  },"set2": {
    "key2": "value2"
  },"set3": {
    "key3": "value3"
  },"set4": {
    "key4": "value4"
  }
}
var result = Object.keys(data).map(_ => Object.values(data[_])[0]);
console.log(result);

这输出 [ 'value1','value2','value3','value4' ]

,

const data = [{
  "set1": {
    "key1": "value1"
  },"set4": {
    "key4": "value4"
  }
}]

console.log(data.reduce((values,o) => {
  Object.values(o).forEach(v =>
    values.push(...Object.values(v)));
  return values;
},[]));

,

这将涵盖具有多个数组对象的情况。

let data_array = [
    {
    "set1": {
        "key1": "value1"
    },"set2": {
        "key2": "value2"
    },"set3": {
        "key3": "value3"
    },"set4": {
        "key4": "value4"
    } 
    },{
    "set5": {
        "key1": "value5"
    },"set6": {
        "key2": "value1"
    },"set7": {
        "key3": "value2"
    },"set8": {
        "key4": "value3"
    } 
    }
];

let result =  data_array.reduce((accumulator,currentValue)=> {
    accumulator.push(...Object.keys(currentValue).map((key) => Object.values(currentValue[key])[0]));
  return accumulator;
},[]);

console.log(result)

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。