需要访问JSON.stringify对象中的数据

时间:2016-07-12 02:32:35

标签: javascript json onclick google-visualization

此问题的背景是我试图从谷歌可视化日历中的addListener访问所选单元格。我可以使用JSON.stringify(chart.getSelection());打印所选单元格。它打印为[{"date":1468195200000,"row":0}]

我的问题是访问此日期对象。我试图以

的形式访问它
var obj=JSON.stringify(chart.getSelection());
        console.log('selected value '+obj.date);

但它显示为Undefined。当我打印obj时,它显示为[对象,对象]

如果您需要更多信息,请告诉我们。任何建议将不胜感激。

4 个答案:

答案 0 :(得分:4)

JSON.stringify()将数据对象序列化为字符串。只需直接访问该对象。

var data = chart.getSelection()[0]; // assuming there is only ever one item in the selection array.
console.log(data.date)

答案 1 :(得分:3)

试试这个:



error C2248: 'A::fooMem' : cannot access private member declared in class 'A'
see declaration of 'A::fooMem'




答案 2 :(得分:1)

在侦听'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>
&#13;
&#13;
&#13;

答案 3 :(得分:0)

这是一个对象数组,但是这个数组中只有一个对象(或者我认为),所以你应该做的是self.buttonName.layer.borderWidth = 1 self.buttonName.layer.borderColor = UIColor.whiteColor().CGColor