Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/129.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 从JSON对象中删除所有键_Javascript_Json_Parsing - Fatal编程技术网

Javascript 从JSON对象中删除所有键

Javascript 从JSON对象中删除所有键,javascript,json,parsing,Javascript,Json,Parsing,最初我使用的是CSV,其中每一行都包含数据,例如 ------------------------------------------------------ 123 | cat | dog | ------------------------------------------------------ 456 | cat | rabbit |

最初我使用的是CSV,其中每一行都包含数据,例如

------------------------------------------------------
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]);
});