Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/464.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript JSON只返回一个对象_Javascript_Json - Fatal编程技术网

Javascript JSON只返回一个对象

Javascript JSON只返回一个对象,javascript,json,Javascript,Json,我在Domo工作,从API中提取用户。我正试图拉所有用户,并在网站自定义字段中添加条目。到目前为止,它只吸引了一个用户。此外,在obj2日志中,它只返回一个对象。因为它没有返回所有的对象,所以它永远不会得到ID 4,这是Department。它只输出ID 11,这是我们使用并停止的ID类型 我觉得我很接近了…有什么需要修正的指针吗 我对JavaScript非常陌生,请善待我 if(metadata.report == 'User'){ DOMO.log('metadata.reportname:

我在Domo工作,从API中提取用户。我正试图拉所有用户,并在网站自定义字段中添加条目。到目前为止,它只吸引了一个用户。此外,在obj2日志中,它只返回一个对象。因为它没有返回所有的对象,所以它永远不会得到ID 4,这是Department。它只输出ID 11,这是我们使用并停止的ID类型

我觉得我很接近了…有什么需要修正的指针吗

我对JavaScript非常陌生,请善待我

if(metadata.report == 'User'){
DOMO.log('metadata.reportname: ' +  metadata.report);
var base_url = 'https://app.com/api/author/users/';
var res = httprequest.get(base_url);
//DOMO.log('res: ' + res);
var raw = JSON.parse(res);
datagrid.addColumn('id', datagrid.DATA_TYPE_STRING);
datagrid.addColumn('hris_id', datagrid.DATA_TYPE_STRING);
datagrid.addColumn('full_name', datagrid.DATA_TYPE_STRING);
datagrid.addColumn('first_name', datagrid.DATA_TYPE_STRING);
datagrid.addColumn('last_name', datagrid.DATA_TYPE_STRING);
datagrid.addColumn('department', datagrid.DATA_TYPE_STRING);

var users = raw.users;
//DOMO.log('users: ' + JSON.stringify(users));

for(var i = 0; i < users.length; i++){
  var obj = users[i];
}
  //make new specific request with includes
  var temp = obj.id;
  var temp2 = '?includes[]=custom_fields';
  var uniq_url = base_url.concat(temp.concat(temp2));
  //DOMO.log(uniq_url);
  var res2 = httprequest.get(uniq_url);
  var raw2 = JSON.parse(res2);
  //DOMO.log((raw2));

  var linked = raw2.linked;
  var cf = linked.custom_fields;
  var cfv = linked.custom_field_values;

 for(var g = 0; g < cfv.length; j++){
    var obj2 = cfv[g];
    DOMO.log(obj2.value);
  }
    if (obj2.custom_fields.id == 4){ 
    DOMO.log("Department is: " + obj2.value);
    }

    //if (obj2.links.custom_field.id == 5){
      //DOMO.log('Position is ' + obj2.value);


  //DOMO.log('JSON ' + res);
  //DOMO.log('id: ' + obj.id);
  datagrid.addCell(obj.id);
  //DOMO.log('hris_id: ' + obj.hris_id);
  datagrid.addCell(obj.hris_id);   
  //DOMO.log('full_name: ' + obj.hris_id);
  datagrid.addCell(obj.full_name);          
  //DOMO.log('first_name: ' + obj.first_name);
  datagrid.addCell(obj.first_name);
  //DOMO.log('last_name: ' + obj.last_name)
  datagrid.addCell(obj.last_name);
  //DOMO.log('value: ' + obj.value);
  datagrid.addCell(obj.value);
  datagrid.endRow();
}  

//Console Log;
metadata.reportname: User
https://app.com/api/author/users/976?includes[]=custom_fields
{"id":"3785","value":"12870","links":{"custom_field":{"id":"11","type":"custom_fields"}}}
if(metadata.report=='User'){
log('metadata.reportname:'+metadata.report);
var base_url='1〕https://app.com/api/author/users/';
var res=httprequest.get(基本url);
//DOMO.log('res:'+res);
var raw=JSON.parse(res);
datagrid.addColumn('id',datagrid.DATA\u类型\u字符串);
datagrid.addColumn('hris_id',datagrid.DATA_TYPE_STRING);
datagrid.addColumn('full_name',datagrid.DATA_TYPE_STRING');
datagrid.addColumn('first\u name',datagrid.DATA\u TYPE\u STRING);
datagrid.addColumn('last_name',datagrid.DATA_TYPE_STRING);
datagrid.addColumn('department',datagrid.DATA\u TYPE\u STRING);
var用户=原始用户;
//log('users:'+JSON.stringify(users));
对于(var i=0;i
问题在于for循环:

for(var i = 0; i < users.length; i++){
  var obj = users[i];
}
for(var i=0;i
您正在迭代所有用户,但始终使用当前[i]用户

我猜您的意思是括号将包围整个代码:

像这样:

var users = raw.users;
//DOMO.log('users: ' + JSON.stringify(users));
for (var i = 0; i < users.length; i++) {
  var obj = users[i];

  //make new specific request with includes
  var temp = obj.id;
  var temp2 = '?includes[]=custom_fields';
  var uniq_url = base_url.concat(temp.concat(temp2));
  //DOMO.log(uniq_url);
  var res2 = httprequest.get(uniq_url);
  var raw2 = JSON.parse(res2);
  //DOMO.log((raw2));

  var linked = raw2.linked;
  var cf = linked.custom_fields;
  var cfv = linked.custom_field_values;

  for (var g = 0; g < cfv.length; j++) {
    var obj2 = cfv[g];
    DOMO.log(obj2.value);
  }
  if (obj2.custom_fields.id == 4) {
    DOMO.log("Department is: " + obj2.value);
  }
}
var users=raw.users;
//log('users:'+JSON.stringify(users));
对于(var i=0;i
编辑: 在您的额外输入之后,我在下一个for循环中看到了另一个错误-相同的问题,您正在迭代它,但最终获得了一个值(最后一个),这是一个错误,因为没有定义j,因为您使用的是g

固定代码:

  if (metadata.report == 'User') {
    DOMO.log('metadata.reportname: ' + metadata.report);
    var base_url = 'https://app.com/api/author/users/';
    var res = httprequest.get(base_url);
    //DOMO.log('res: ' + res);
    var raw = JSON.parse(res);
    datagrid.addColumn('id', datagrid.DATA_TYPE_STRING);
    datagrid.addColumn('hris_id', datagrid.DATA_TYPE_STRING);
    datagrid.addColumn('full_name', datagrid.DATA_TYPE_STRING);
    datagrid.addColumn('first_name', datagrid.DATA_TYPE_STRING);
    datagrid.addColumn('last_name', datagrid.DATA_TYPE_STRING);
    datagrid.addColumn('department', datagrid.DATA_TYPE_STRING);

    var users = raw.users;
    //DOMO.log('users: ' + JSON.stringify(users));

    for (var i = 0; i < users.length; i++) {
      var obj = users[i];
      //Move brackets to end

      //make new specific request with includes
      var temp = obj.id;
      var temp2 = '?includes[]=custom_fields';
      var uniq_url = base_url.concat(temp.concat(temp2));
      //DOMO.log(uniq_url);
      var res2 = httprequest.get(uniq_url);
      var raw2 = JSON.parse(res2);
      //DOMO.log((raw2));

      var linked = raw2.linked;
      var cf = linked.custom_fields;
      var cfv = linked.custom_field_values;

      //for (var g = 0; g < cfv.length; j++) { --> g++ instead of j++
      for (var g = 0; g < cfv.length; g++) {
        var obj2 = cfv[g];
        DOMO.log(obj2.value);
        //Move bracket to after using obj2
        //Added more conditions:
        if (obj2.custom_fields.id == 4 || obj2.custom_fields.id==5 || obj2.someOtherProp=="Something") {
          DOMO.log("Department is: " + obj2.value);
          //DOMO.log('JSON ' + res);
          //DOMO.log('id: ' + obj.id);
          datagrid.addCell(obj.id);
          //DOMO.log('hris_id: ' + obj.hris_id);
          datagrid.addCell(obj.hris_id);
          //DOMO.log('full_name: ' + obj.hris_id);
          datagrid.addCell(obj.full_name);
          //DOMO.log('first_name: ' + obj.first_name);
          datagrid.addCell(obj.first_name);
          //DOMO.log('last_name: ' + obj.last_name)
          datagrid.addCell(obj.last_name);
          //DOMO.log('value: ' + obj.value);
          datagrid.addCell(obj.value);
          datagrid.endRow();
        }
      }
      //if (obj2.links.custom_field.id == 5){
      //DOMO.log('Position is ' + obj2.value);

      //Moved this code inside the if id==4.

    }
  }
if(metadata.report=='User'){
log('metadata.reportname:'+metadata.report);
var base_url='1〕https://app.com/api/author/users/';
var res=httprequest.get(基本url);
//DOMO.log('res:'+res);
var raw=JSON.parse(res);
datagrid.addColumn('id',datagrid.DATA\u类型\u字符串);
datagrid.addColumn('hris_id',datagrid.DATA_TYPE_STRING);
datagrid.addColumn('full_name',datagrid.DATA_TYPE_STRING');
datagrid.addColumn('first\u name',datagrid.DATA\u TYPE\u STRING);
datagrid.addColumn('last_name',datagrid.DATA_TYPE_STRING);
datagrid.addColumn('department',datagrid.DATA\u TYPE\u STRING);
var用户=原始用户;
//log('users:'+JSON.stringify(users));
对于(var i=0;ig++而不是j++
对于(var g=0;g