Google Sheets APIを使用してスプレッドシートを取得し、それを解析しています。私は JavaScript を使用しており、JSON をリクエストしています (REST API のドキュメントは、実際には古いGoogle Data APIドキュメントに含まれています - 非常に面倒です!)。
GET
データに使用している URL はID
次のとおりです。 はスプレッドシートの ID です。
https://spreadsheets.google.com/feeds/cells/"+ID+"/1/public/values?alt=json
これにより、最初のワークシートの各セルが取得されますが、すべてのセルが 1 つの配列にリストされます。
feed: {
entry: [
0: {
gs$cell: {
row: 1,
col: 1,
$t: 'Value'
}
},
1: {
gs$cell: {
row: 2,
col: 1,
$t: 'Other Value'
}
}
]
}
これはdata.feed.entry
、for ループを使用して配列 ( ) を反復処理し、 を使用してどの行にあるかを確認しdata.feed.entry[i].gs$cell.row
、各セルを各行の配列に並べ替える必要があることを意味します。これは、JSON オブジェクトを使用できるようにフォーマットするためだけに、多くの余分な作業のように思えます。
Google が JSON オブジェクトをこのように構造化した理由が気になります。そもそも、セルを行ごとにグループ化しないのはなぜですか? 何かが足りない気がします。
list
次に、ではなく を使用して行全体を取得する方がよいのではないかと考えましたが、そうするとcells
、列は値によって定義されるため、コンテンツを動的にすることはできません。データを解析する前にヘッダー値を知る必要があります...
feed: {
entry: [
0: {
gsx$MyColumnValue: {
row: 1,
col: 1,
$t: 'Value'
}
},
1: {
gsx$MyOtherColumnValue: {
row: 2,
col: 1,
$t: 'Other Value'
}
}
]
}
繰り返しますが、なぜ Google が JSON をこのように構造化するのか、私は途方に暮れています。なぜなのかご存知ですか?私は何が欠けていますか?