簡體   English   中英

需要訪問JSON.stringify對象中的數據

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM