[英]Need to access data in JSON.stringify object
這個問題的背景是我正在嘗試從谷歌可視化日歷中的addListener訪問所選單元格。 我可以使用JSON.stringify(chart.getSelection());
打印選定的單元格JSON.stringify(chart.getSelection());
。 它打印為[{"date":1468195200000,"row":0}]
。
我的問題是訪問此日期對象。 我試圖訪問它
var obj=JSON.stringify(chart.getSelection());
console.log('selected value '+obj.date);
但它顯示為Undefined
。 當我打印obj
它顯示為[對象,對象]
如果您需要更多信息,請告訴我。 任何建議將不勝感激。
JSON.stringify()將數據對象序列化為字符串。 只需直接訪問該對象。
var data = chart.getSelection()[0]; // assuming there is only ever one item in the selection array.
console.log(data.date)
嘗試這個:
var data = [{"date":1468195200000,"row":0}] var rw = data[0].row; var dt = new Date(data[0].date); console.log(rw); console.log(dt);
在收聽'select'
事件時直接訪問第一個數組元素時要小心
chart.getSelection()[0]
在進行選擇和刪除時,都會觸發'select'
事件
因此刪除選擇時上面的行將失敗
在訪問之前檢查length
...
selection = chart.getSelection();
// check selection length
if (selection.length > 0) {
console.log(selection[0].date);
} else {
console.log('selection removed');
}
請參閱以下工作代碼段,選擇日期,然后再次選擇以刪除選擇...
google.charts.load('current', { callback: function () { var dataTable = new google.visualization.DataTable(); dataTable.addColumn({ type: 'date', id: 'Date' }); dataTable.addColumn({ type: 'number', id :'Score' }); dataTable.addRows([ [ new Date(2016, 3, 13), 101 ], [ new Date(2016, 3, 14), 102 ], [ new Date(2016, 3, 15), 103 ], [ new Date(2016, 3, 16), 104 ], [ new Date(2016, 3, 17), 105 ] ]); var chart = new google.visualization.Calendar(document.getElementById('chart_div')); google.visualization.events.addListener(chart, 'select', function () { var selection = chart.getSelection(); // check selection length if (selection.length > 0) { console.log(selection[0].date); } else { console.log('selection removed'); } }); chart.draw(dataTable); }, packages:["calendar"] });
<script src="https://www.gstatic.com/charts/loader.js"></script> <div id="chart_div"></div>
這是一個對象數組,但是這個數組中只有一個對象(或者我認為),所以你應該做的是console.log(obj[0].date);
代替!
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.