如何从 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)
我喜欢这个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)