Javascript 从JSON对象中删除所有键
最初我使用的是CSV,其中每一行都包含数据,例如Javascript 从JSON对象中删除所有键,javascript,json,parsing,Javascript,Json,Parsing,最初我使用的是CSV,其中每一行都包含数据,例如 ------------------------------------------------------ 123 | cat | dog | ------------------------------------------------------ 456 | cat | rabbit |
------------------------------------------------------
123 | cat | dog |
------------------------------------------------------
456 | cat | rabbit |
------------------------------------------------------
789 | snake | dog |
------------------------------------------------------
我现在得到了更多不同结构的数据,所以我不能再使用csv了。相反,我使用的是JSON文件。JSON文件如下所示
[
[
{
"ID": 123,
"animal_one": "cat",
"animal_two": "dog"
},
{
"ID": 456,
"animal_one": "cat",
"animal_two": "rabbit"
},
{
"ID": 789,
"animal_one": "snake",
"animal_two": "dog"
}
],
[
2222
],
[
12345
],
[
"2012-01-02"
],
[
"2012-12-20"
]
]
var key = "CUST_ID";
delete data[0][key];
console.log(JSON.stringify(data[0]))
因此,您可以查看附加数据。对于应用程序的这一部分,我只想使用JSON的第一部分,即包含动物的部分。我的函数基本上只处理值,所以我需要使这个JSON像原始的CSV文件一样,我只有值,没有键
因此,我正在加载JSON文件,该文件随后包含在变量数据中
我正在尝试这样的事情
[
[
{
"ID": 123,
"animal_one": "cat",
"animal_two": "dog"
},
{
"ID": 456,
"animal_one": "cat",
"animal_two": "rabbit"
},
{
"ID": 789,
"animal_one": "snake",
"animal_two": "dog"
}
],
[
2222
],
[
12345
],
[
"2012-01-02"
],
[
"2012-12-20"
]
]
var key = "CUST_ID";
delete data[0][key];
console.log(JSON.stringify(data[0]))
尽管这根本不起作用,但我认为这是一种错误的方法。我不想定义要删除的键,我只想让它删除所有键,并保留值
我该怎么做呢?我使用数据[0]获取JSON的第一部分,即包含动物的部分。也不确定这是否正确
谢谢
我不想定义要删除的键
您仍然需要定义要从中获取值的键。可以按任意顺序获取对象中的所有值,但这对数据格式的更改并不可靠。使用类似
const table = data[0].map(value => [value.ID, value.animal_one, value.animal_two]);
如果你不在乎你得到的钥匙是什么,你可以简单地这样做:
var collection = "";
data[0].forEach(function(row) {
var line = [];
Object.keys(row).forEach(function(key) {
line.push(row[key])
});
collection = collection + line.join(',') + '\n';
})
您将从集合中获取csv字符串数组通常应包含相同类型的值,除非它表示元组,但最外层的值在我看来不像五元组。最好使用一个对象并给它描述键。这似乎是一个很好的答案。刚刚意识到我需要添加一个标题行,有点像CSV。你知道我如何做到这一点吗?只要用标题字符串开始收集。无需变量集合='Id,animal_-one,animal_-two\n';
data[0].forEach(function(row,index) {
data[0][index] = Object.values(data[0][index]);
});