如何从 json 中提取所有键和值?使用 Javascript

How to extract all keys and values from json? using Javascript

我喜欢这个json。

{
  "a": 99,
  "b": "this, is, string",
  "c": "hi:"
}

我想将所有键和值提取到这样的数组中。

但是 split(',') 不起作用,因为 "b": "this, is, string", 中有多个 ,。即使我不能使用 : 拆分,因为 :hi:,.

你能给我一些建议吗?

您可以将 Object.entries.flat 一起使用:

const fixedJson = `{
  "a": 99,
  "b": "this, is, string",
  "c": "hi:"
}`;

const obj = JSON.parse(fixedJson);

const result = Object.entries(obj).flat();

console.log(result);

您可以使用 Object.keys()Object.values() 来获取包含键和值的分隔数组。然后就可以合并这两个数组了。

const str = `{
  "a": 99,
  "b": "this, is, string",
  "c": "hi:"
}`;
const d = JSON.parse(str);
const k = Object.keys(d);
const v = Object.values(d);
const t = Math.min(k.length, v.length);

const m = [].concat(...Array.from({ length: t }, (_, i) => [k[i], v[i]]), k.slice(t), v.slice(t));
  
console.log('merged', m)