2015-02-17 2 views
0

У меня есть JSON строку, возвращаемую из вызова API, который выглядит, как этотКак я могу избавиться от внешних параметров строки JSON?

{"study":{"moleculeDescription":"RONTALIZUMAB","protocolTitle":"IMM","protocolNumber":"GA00806","studyName":"Interferon alpha in SLE Phase II LCM Option","therapeuticArea":"INFLAMMATORY,AUTOIMMUNE&BONE","startDate":"2009-03-25","endDate":"2013-08-22"}} 

Я хочу, чтобы иметь возможность использовать что-то вроде того, что у меня есть ниже цикла через строку JSON и присвоить значения для полей ввода на страница.

function doStuff() { 
     var myTest = document.getElementById('{!$Component.jsonStr}'); 

     for(k in myTest){ 
      document.getElementById(k).value = myTest[k]; 
      } 
     } 

Однако, это работает только тогда, когда моя строка JSON (вар MyTest) выглядит следующим образом (см ниже, не имеет наружный { "исследование":} параметр)

{"moleculeDescription":"RONTALIZUMAB","protocolTitle":"IMM","protocolNumber":"GA00806","studyName":"Interferon alpha in SLE Phase II LCM Option","therapeuticArea":"INFLAMMATORY,AUTOIMMUNE&BONE","startDate":"2009-03-25","endDate":"2013-08-22"} 

ли кто-нибудь знаете, как я могу устранить внешний раздел моей строки json, чтобы я мог работать с внутренним сектором? Или есть лучший способ, например, изменение инструкции for? Спасибо за любую помощь, и извините, если это глупый вопрос, я новичок.

+0

, что происходит, если вы пытаетесь получить доступ к изучению объект, а затем перебирать свойства этого? т.е. для (k в myTest.study) – user1573618

+0

для (k в myTest.study)? –

+0

Спасибо! Это действительно помогло! –

ответ

1
var x = {"study":{"moleculeDescription":"RONTALIZUMAB","protocolTitle":"IMM","protocolNumber":"GA00806","studyName":"Interferon alpha in SLE Phase II LCM Option","therapeuticArea":"INFLAMMATORY,AUTOIMMUNE&BONE","startDate":"2009-03-25","endDate":"2013-08-22"}}; 

var y = x.study; 

у будет искомым var

Лучше всего делать это

for(k in myTest.study) 
{ 
    document.getElementById(k).value = myTest[k]; 
} 
0

Вы можете сделать следующее

for (var key in myTest) { 
    if (myTest.hasOwnProperty(key)) { 
    var localSet = myTest[key]; 
    // .. here goes your code to iterate through inner object 
    } 
} 
Смежные вопросы