2016-04-06 3 views
0

Am пытается получить ключевые значения из josn ответ ..итерация JSON ответ данных с помощью Node.js

Это obtained.from данные ответа это мне нужно, чтобы получить projects значения

{ '$': 
    { id: 'TP', 

    href: '/app/rest/projects/id:yuioTP', 
    webUrl: 'http://teamcity.jffjf 
' }, 
    parentProject: [ { '$': [Object] } ], 
    buildTypes: [ { '$': [Object] } ], 
    templates: [ { '$': [Object], buildType: [Object] } ], 
    parameters: [ { '$': [Object], property: [Object] } ], 
    vcsRoots: [ { '$': [Object] } ], 
    projects: [ { '$': [Object], project: [Object] } ] } 

код

var parseString = require('xml2js').parseString; 
var async = require('async'); 

var getJson = function(callback) { 
    http.get(options, function(res) { 
     var data = ''; 
     res.setEncoding('utf8'); 
     res.on('data', function(chunk) { 
      data += chunk.toString(); 
     }); 
     res.on('end', function() { 
      var output = {}; 
      var err = null; 
      try { 

       parseString(data, function(err, result) { 
        async.each(result, function(test, test_callback) { 
         console.log(test.projects) 

        }, function(err) { 
         callback(null, report); 
        }); 
       }); 
      } catch (e) { 
       err = e; 
      } 
      // callback(err, output); 
     }) 
    }).on('error', function(err_) { 

     console.log(err_, url); 
     callback({ 
      error: err_ 
     }); 
    }); 
} 

getJson(); 


console.log(test.projects) 

// Печатает .... Как я могу получить данные объекта в проектах ключевых

[ { '$': { count: '9' }, 
    project: 
    [ [Object], 
     [Object], 
     [Object], 
     [Object], 
     [Object], 
     [Object], 
     [Object], 
     [Object], 
     [Object] ] } ] 
+0

Вы пробовали 'Object.keys'? –

+0

Я не знаю, как использовать это. Я didnmt попробовал – Psl

ответ

1

Использование метода Object.keys. Простой пример ниже.

var a = { 
    foo: "hello", 
    baz: "world" 
} 

var array = [a,a,a,a,a] 

array.forEach(function(item){ 
    Object.keys(item).forEach(function(key){ 
    console.log(key + ' : ' + item[key]) 
    }) 
}) 

В вашем случае следует перебирать <object>.projects и передать каждый элемент в Object.keys метод

<object>.projects.forEach(function(item){ 
    Object.keys(item).forEach(function(key){ 
    console.log(key + ' : ' + item[key]) 
    }) 
} 

Я надеюсь, что это поможет вам fiddle.

+0

it returs project: [object Object] only – Psl

0

Попробуйте это:

projects[0].project.forEach(function(item){ 

    console.log(item[0]); //log whole object 
    var temp = item[0]; 
    Object.keys(temp).forEach(function(key){ 
    console.log(key + ' : ' + temp[key]); //log value by key 
    }); 
}); 
Смежные вопросы