2015-09-29 3 views
1

Я следующий пример JSON, и я хотел бы получить имя столбца, как Dribbble, Behance ...Получить имя столбца из JSON

{ 
    status: 200, 
    success: true, 
    result: 
    [ { Dribbble: 'a', 
     Behance: '', 
     Blog: 'http://blog.invisionapp.com/reimagine-web-design-process/', 
     Youtube: '', 
     Vimeo: '' }, 
    { Dribbble: '', 
     Behance: '', 
     Blog: 'http://creative.mailchimp.com/paint-drips/?_ga=1.32574201.612462484.1431430487', 
     Youtube: '', 
     Vimeo: '' } ] 
} 

Я использую запрос модуль и возвращает JSON штраф но я пытаюсь получить имя столбца в строчном формате. Если бы я мог получить столбец в формате числа, по крайней мере, я бы мог узнать, является ли он правильным столбцом, но вместо этого я получаю два нуля.

request({ 
    url: url, 
    json: true 
}, function (error, response, body) { 

    if (!error && response.statusCode === 200) { 
     callback(body) 
     var json = body.result; 

     for (var key in json) { 
      if (json.hasOwnProperty(key)) { 
       var column = Object.keys(key); 
       console.log(column[0]); 
      } 
     } 

    } 
}) 
+0

'Object.keys (json [key])' – melpomene

ответ

1
var json = { 
    "status": 200, 
    "success": true, 
    "result": [ 
    { 
     "Dribbble": 'a', 
     "Behance": '', 
     "Blog": 'http://blog.invisionapp.com/reimagine-web-design-process/', 
     "Youtube": '', 
     "Vimeo": '' 
    }, 
    { 
     "Dribbble": '', 
     "Behance": '', 
     "Blog": 'http://creative.mailchimp.com/paint-drips/?_ga=1.32574201.612462484.1431430487', 
     "Youtube": '', 
     "Vimeo": '' } 
    ] 
} 
// get the results (useful data) somewhere 
var results = json["result"]; 
// get the first result set, or you can loop trhrough all, assuming that each reuslt set is the same. 
if (results.length > 0){ 
    var columnsIn = results[0]; 
    for(var key in columnsIn){ 
    console.log(key); // here is your column name you are looking for 
    } 
}else{ 
    console.log("No columns"); 
} 

Этот фрагмент код должен направить вас в правильном направлении

+0

Спасибо, что показал мне правильный пример. Как это отличается от использования JSON.parse()? Я получаю синтаксическую ошибку, используя метод parse. 'var data = JSON.parse (данные); \t console.log (data.result.Blog); ' –

+0

потому что есть массив, вы не сможете этого сделать, если только вы не делаете data.result [0] .blog, что-то вдоль этих строк. –

+0

Не могли бы вы показать мне, как получить значение столбца? Я новичок в этом, и я очень ценю вашу помощь. –

1

поднятия коды Чад Peruggia, вы можете распечатать каждую пару ключей значения в массиве результатов, делая это:

var json = { 
    "status": 200, 
    "success": true, 
    "result": [ 
    { 
     "Dribbble": 'a', 
     "Behance": '', 
     "Blog": 'http://blog.invisionapp.com/reimagine-web-design-process/', 
     "Youtube": '', 
     "Vimeo": '' 
    }, 
    { 
     "Dribbble": '', 
     "Behance": '', 
     "Blog": 'http://creative.mailchimp.com/paint-drips/?_ga=1.32574201.612462484.1431430487', 
     "Youtube": '', 
     "Vimeo": '' } 
    ] 
} 
// get the results (useful data) somewhere 
var results = json["result"]; 
// you can loop through all, assuming that each result set is the same. 
if (results.length > 0) { 
    // iterating through the results array 
    for(var i = 0; i < results.length; i++) { 
     // get i-th object in the results array 
     var columnsIn = results[i]; 
     // loop through every key in the object 
     for(var key in columnsIn){ 
      console.log(key + ' : ' + results[i][key]); // here is your column name you are looking for + its value 
     } 
    } 
} 
else { 
    console.log("No columns"); 
} 
+0

Что именно мне нужно, спасибо! Поскольку Чад был первым, и мой первоначальный вопрос касался только имени столбца, мне нужно будет выбрать его ответ, чтобы быть справедливым. –

+0

Все в порядке. Я просто собирался ответить на цепочку комментариев, но у меня не было достаточного количества повторений для этого ... – Grassycup

Смежные вопросы