我正在使用v4 sheets API中的google-api-nodejs-client,它会返回大量数据。虽然我使用fields
参数对其进行过滤,但JSON的结构非常复杂。所以要把它融入我的逻辑中,我就把它弄平了。它需要安全,我不希望抛出任何例外。
这是 UNSAFE 版本代码的外观:
const data = response.sheets[0].data;
const columns = data.map((column) => {
const rowData = column.rowData;
const values = rowData[0].values;
return rowData.map((cellData) => cellData.values[0].userEnteredValue);
});
// ...
如果JSON无效,则异常是不可避免的。我不想要这个。问题是要修复它,我应该添加大量的if
- s。这会使代码看起来很难看。
让我们总结一下:有没有办法将JSON安全地映射到本地对象并表达(最好只依赖于 ES6 的功能)?
更新
让我们再添加一些背景信息。这是一个很小的洞察JSON的深度,我需要将它映射到一个字符串数组('1.06'就是其中之一)。
{
"sheets":[
{
"data":[
{
"rowData":[
{
"values":[
{
"userEnteredValue":{
"stringValue":"1.06"
}
}
]
},
...