javascript — массив Json в поле выбора с переполнением стека

Я надеюсь, что кто-то может помочь мне с этим вопросом, который у меня есть. То, что я хочу, это поле выбора, которое заполняется из файла JSON. Проблема в том, что у меня есть странный вид файла json, который я не знаю, является ли он массивом или объектом.

Вот как это выглядит:

{
"Id": 4,
"Name": "Testing Demo",
"OpeningHours": [
{
"Name": "Monday",
"Hours": "Kl. 09:30:00 - 21:00:00"}
],
"Address": {
"Street": "Johnson road",
"StreetNumber": "5",
"Town": "London"},
"Phone1": "4123213414",
"Phone2": null,
"Documents": null,
"Messages": [
{
"Title": "We are on the way",
"Body": "fine",
"Created": "01-02-2014"},
{
"Title": "Get the stuff",
"Body": "To be ready",
"Created": "01-01-2014"}
],
"Employees": [
{
"Name": "John Hood",
"Description": "officer",
"ProfileImageUrl": "http://grfx.cstv.com/photos/schools/kty/sports/m-baskbl/auto_headshot/9265204.jpeg"},
{
"Name": "John hood 2",
"Description": "athletic",
"ProfileImageUrl": "http://grfx.cstv.com/photos/schools/kty/sports/m-baskbl/auto_headshot/9265204.jpeg"}
]
}

Как я собираюсь показывать значения ID и названия?

Этот код не работает, что я не знаю, если я делаю это даже правильно ..

(function($) {
$(document).ready(function() {
$('<tr class="form-field form-required"></tr>').append(
$('<th scope="row">New field</th>')
).append(
$('<td></td>').append(
$('<select id="release-list"></select>')
).append(
$('<p>Explanation about your new field</p>')
)
).insertAfter('#wpbody-content table tr:eq(2)');});

$.getJSON('../../cache/path.json', function(data) {
var select = $('#release-list');
$.each(data, function(key, val){
$('<option/>').attr('value', val[key]["Id"]).html('value' + val[key]["Name"]).appendTo(select);
});
});

})(jQuery);

-1

Решение

Вы можете преобразовать данные из JSON в массив, используя JSON.parse ()

http://www.dyn-web.com/tutorials/php-js/json/parse.php

Пример:

var data = '{"first":[1,2,3],"second":[4,5,6]}';
var jsonData = JSON.parse(data);
alert(jsonData.first[1]);
alert(jsonData.second);
0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]