2014-03-06 133 views
1

我有一个php multidimensional数组,我将它转换成JSON与php json_encode函数。从php解析json到javascript

现在,编码后,我回声的JSON像echo'var javascriptJson ='。$ encoded_in_json_array;

我怎样才能得到javascriptJson使用JavaScript的值?或者,我怎么能将我的multidim php数组转换为JavaScript,以便我可以遍历它或获取值?

javascriptJson看起来像这样:

var javascriptJson={ 
    "AMERICA CENTRALA SI DE SUD": { 
    "Argentina": { 
     "Recomandari pentru toti calatorii: Vaccinari de rutina": { 
     "Difterie\/Tetanos\/Pertussis": "background-color: b6c86;", 
     "Rujeola\/Rubeola\/Oreion": "background-color: b1ffff;", 
     "Varicela": "background-color: ffffff;", 
     "Gripa sezoniera": "background-color: ffffff;" 
     }, 
     "Recomandari de vaccinare pentru majoritatea calatorilor": { 
     "Hepatita A": "background-color: a6a6a6;", 
     "Tifos": "background-color: d9d9d9;" 
     }, 
     "Recomandari de vaccinare limitate (in functie de expunere)": { 
     "Hepatita B": "background-color: 7f7f7f;", 
     "Rabia": "background-color: 93d;" 
     }, 
     "Recomandari speciale de preventie": { 
     "Malaria": "background-color: 9bbb59;" 
     } 
    }, 
    "Belize": { 
     "Recomandari pentru toti calatorii: Vaccinari de rutina": { 
     "Difterie\/Tetanos\/Pertussis": "background-color: b6c86;", 
     "Rujeola\/Rubeola\/Oreion": "background-color: b1ffff;", 
     "Varicela": "background-color: ffffff;", 
     "Gripa sezoniera": "background-color: ffffff;" 
     }, 
     "Recomandari de vaccinare pentru majoritatea calatorilor": { 
     "Hepatita A": "background-color: a6a6a6;", 
     "Tifos": "background-color: d9d9d9;" 
     }, 
     "Recomandari de vaccinare limitate (in functie de expunere)": { 
     "Hepatita B": "background-color: 7f7f7f;", 
     "Rabia": "background-color: 93d;" 
     }, 
     "Recomandari speciale de preventie": { 
     "Malaria": "background-color: 9bbb59;" 
     } 
    }, 
    "Bolivia": { 
     "Recomandari pentru toti calatorii: Vaccinari de rutina": { 
     "Difterie\/Tetanos\/Pertussis": "background-color: b6c86;", 
     "Rujeola\/Rubeola\/Oreion": "background-color: b1ffff;", 
     "Varicela": "background-color: ffffff;", 
     "Gripa sezoniera": "background-color: ffffff;" 
     }, 
     "Recomandari de vaccinare pentru majoritatea calatorilor": { 
     "Hepatita A": "background-color: a6a6a6;", 
     "Tifos": "background-color: d9d9d9;" 
     }, 
     "Recomandari de vaccinare limitate (in functie de expunere)": { 
     "Hepatita B": "background-color: 7f7f7f;", 
     "Rabia": "background-color: 93d;" 
     }, 
     "Recomandari speciale de preventie": { 
     "Malaria": "background-color: 9bbb59;" 
     } 
    }, .....etc...etc 
+0

也许这可以帮助您的问题: http://stackoverflow.com/问题/ 13994858/javascript-convert-php-json-into-a-javascript-array – csanonymus

+0

通过使用javascriptJson [“美国中部城市”] [“伯利兹”] [“Recomandari speciale de preventi E “] [” 疟疾“]'? – h2ooooooo

+0

@ h2ooooooo他需要一个自动的方式来做到这一点... – csanonymus

回答

1
for (var i in javascriptJson) { 
    console.log(javascriptJson[i]); 
    for (var j in javascriptJson[i]) { 
    console.log(javascriptJson[i]); 
    console.log(javascriptJson[i][j]); 
    } 
} 
+0

递归应该更好地完成这项工作。 – WoIIe

1

如果要循环对象,你可以做

foreach(prop in obj){ 
console.log(prop); // would get you the property name 
console.log(obj[prop]); // would get you the value of that property 
} 

,可以让你在这种情况下启动。

+0

第二个控制台语句是值的一个示例,这会在某些情况下返回下一个对象 – danblundell

1

从外观的东西你应该有一个JavaScript对象后var javascriptJson = '.$encoded_in_json_array;行可用。

您可以通过使用这样的对象迭代:

for(region in javascriptJson){ 
    var region_object = javascriptJson[region]; 
    // Code to handle each region 
    // If you want to look at each country in a region... 
    for(country in region_object){ 
     var country_object = region_object[country]; 
     // Code to handle each country object 
     // You can get values like: 
     // country_object['Recomandari pentru toti calatorii: Vaccinari de rutina'] 
    } 
} 
1

你的问题

我怎样才能javascriptJson的使用JavaScript的价值?或者,我怎么能将我的multidim php数组转换为JavaScript,以便我可以遍历它或获取值?

解决方案

var myObject = JSON.parse(/*json-string*/) 

现在,你可以通过这样的数值迭代:

for (var property in myObject) { 
    // Do whatever you want 
}