javascript - 如何在此 JSON 文件中引用此数据?

标签 javascript json d3.js

我正在使用 d3.js 的“d3.json(); 函数来访问并从 REST API 获取一些数据。

返回的数据如下:

{
"offset" : 0,
"rows": [
{ "_id":
    { "$oid" : "1234567" }, 
      "mockupData" : [ { 
          "Analysis" : "Test", 
          "Description" : "The Test indicates...", 
          "Data" : [
             { "Category" : "A", 
               "Statistic" : 0.15, 
               "Value" : 0.95 }, 
             { "Category" : "B", 
               "Statistic" : 0.65, 
               "Value" : 0.85 }, 
             ] } ] }
           ],
  "total_rows" : 1 ,
  "query" : {} ,
  "millis" : 0
}

我很难深入到 json 中以获得我想要的东西。

我正在尝试这样设置:

function generateChart(){
    var chart;
    var Category = [{key:"Stuff", values:[]}];
    d3.json('http://url_that_returns_json/', function(error,data{
       for(var key in data._SOMETHING_){
          switch(key){
             case "A":
                 Category[0] ["values"].push({"label":"Statistic","value""data.Category[key]});
... // same for B
})

// more graph logic

我似乎缺少这方面的一些完整知识。指导?帮忙?

提前致谢。

最佳答案

这是我实现的 fiddle :https://jsfiddle.net/thatOneGuy/486mwb86/1/

首先,我将数据设置为变量,以便稍后使用。所以:

var data = {
  "offset": 0,
  "rows": [{
    "_id": {
      "$oid": "1234567"
    }, ... //and so on

这与您使用的完全相同:

d3.json('http://url_that_returns_json/', function(error,data{

两个数据变量相同。

然后我到达了您想要检查的点,即数据属性中的类别,如下所示:

var thisDataSet = data.rows[0].mockupData[0].Data;

由于这是一个数组而不是对象,因此我使用了 for 循环来循环:

for (var i = 0; i < thisDataSet.length; i++) {

而且,在我看来,您不需要 switch 语句,因为看起来您只是想用不同的类别填充 Category.values 。因此,我只是将数据集中类别的当前值推送到此 Category.values :

 Category[0]["values"].push({
      "label": "Statistic",
      "value": thisDataSet[i].Category //push category here
    });  

就是这样。检查控制台日志的输出。应该可以正常工作。完整功能:

function generateChart() {
  var chart;
  var Category = [{
    key: "Stuff",
    values: []
  }]; 
  console.log(data.rows[0].mockupData[0].Data)
  var thisDataSet = data.rows[0].mockupData[0].Data;
  for (var i = 0; i < thisDataSet.length; i++) {
    //for (var key in data.rows[0].mockupData[0].Data) {
    console.log(thisDataSet[i]) 
    Category[0]["values"].push({
      "label": "Statistic",
      "value": thisDataSet[i].Category
    });  
  }
  console.log(Category) 
}

关于javascript - 如何在此 JSON 文件中引用此数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36894128/

相关文章:

java - 圆角按钮不起作用

javascript - javascript 文件中的 Angular 分割 json

javascript - 将 'object' 的属性复制到新变量

javascript - React-native-maps 标记方法 animateMarkerToCooperative 抛出未定义的错误

javascript - jQuery(或只是 JS)从 onSubmit 函数中的多个表单提交按钮中选择

c++ - 二进制数据 JSONCPP

d3.js - X 轴不显示在使用 d3.js 的条形图上

javascript - D3 - 饼图

canvas - D3.Geo.Circle with Canvas

javascript - 图表点击事件上的图表标题