2017-10-02 4 views
1

GoogleスプレッドシートからJSON形式でデータを読み込もうとしています。応答として、私は...のようなGoogle Visualization APIがスプレッドシートデータをCSV形式のJSON形式で読み込みます

{ 
    cols: [{id: 'A', label: 'column_A', type: 'string'}, 
     {id: 'B', label: 'column_B', type: 'string'}, 
     {id: 'C', label: 'column_C', type: 'string'} 
    ], 
    rows: [{c:[{v: '1'}, 
      {v: '2'}, 
      {v: '3'} 
     ]}, 
     {c:[{v: 'a'}, 
      {v: 'b'}, 
      {v: 'c'} 
     ]}, 
     {c:[{v: '1'}, 
      {v: '2'}, 
      {v: '3'} 
     ]} 
    ] 
} 

をJSONを受ける...しかし、私は必要なものをCSVはJSON

[{'column_A': 1, 
    'column_B': 2, 
    'column_C': 3 
}, 
{'column_A': 'a', 
    'column_B': 'b', 
    'column_C': 'c' 
}, 
{'column_A': 1, 
    'column_B': 2, 
    'column_C': 3 
}] 

にそれを行うにはどのように任意のアイデアを変換するようにフォーマットされたJSONのですか?あなたの助けが大変ありがとうございます。どうもありがとう!

答えて

0

rows配列
が作業スニペット以下を参照してください各行

に名前を付けるためにcols配列を使用変換するmapメソッドを使用して...

var jsonGoogle = { 
 
    cols: [ 
 
    {id: 'A', label: 'column_A', type: 'string'}, 
 
    {id: 'B', label: 'column_B', type: 'string'}, 
 
    {id: 'C', label: 'column_C', type: 'string'} 
 
    ], 
 
    rows: [ 
 
    {c:[ 
 
     {v: '1'}, 
 
     {v: '2'}, 
 
     {v: '3'} 
 
    ]}, 
 
    {c:[ 
 
     {v: 'a'}, 
 
     {v: 'b'}, 
 
     {v: 'c'} 
 
    ]}, 
 
    {c:[ 
 
     {v: '1'}, 
 
     {v: '2'}, 
 
     {v: '3'} 
 
    ]} 
 
    ] 
 
}; 
 

 
var jsonCSV = jsonGoogle.rows.map(function (row) { 
 
    var rowCSV = {}; 
 
    jsonGoogle.cols.forEach(function (col, index) { 
 
    rowCSV[col.label] = row.c[index].v; 
 
    }); 
 
    return rowCSV; 
 
}); 
 

 
console.log(JSON.stringify(jsonCSV));

+0

ちょっとは作品を@WhiteHat好きな魅力、多くの感謝!私がまだ持っている1つの問題:レスポンスでは、* cols *に 'null 'を除外することはできません。私は 'typeof(row.c [index])== null'をチェックし、代わりに空の' {v: ''} 'を作成してこの問題に取り組もうとしました。しかし残念なことに、「forEach」はすでに「ヌル」と戦っているようだ。あなたはこの問題を克服する方法を知っていますか?再度、感謝します! {type}(row.c [index])== null){throw {...}} rowCSV [col.label] = row.c {インデックス] .v;}); } catch(error){...} ' – 00willson

+0

G.のクエリ言語' var query = new google.visualization.Query( 'http://spreadsheets.google.com/ ..')を使用してGoogleからのデータをリクエストしています。 '); query.setQuery( '...'); '不幸にも、クエリ言語は、データを取得する際にすでに' null 'を置き換えるために使用できるÌFNULLまたはIF条件をサポートしていません。 – 00willson

+0

'cols'配列に' null'値がありますか?もしそうなら - > 'if(col === null)' – WhiteHat

関連する問題