2016-01-15 6 views
1

У меня есть этот файл JSON, где у меня есть, для каждого события (когда), некоторые реакции (сделать):чтения JSON в JQuery

{"title":"Building blocks", 
"date":"'1452786221'", 
"scenes":[ 
    [{ 
    "when":{"event":"init"}, 
    "goto":"" 
    }, 
    { 
    "when":{"event":"e_dTou","position":"up"}, 
    "do":[ 
      {"action":"a_dME","position":"open"}, 
      {"action":"a_dME","position":"close"} 
     ], 
    "goto":"" 
    } 
    ] 
]} 

Я прочитал этот JSON из файла manifest.json с вызовом AJAX поэтому возвращаемые данные - это уже проанализированный текст.

url = "json/manifest.json"; 
$.ajax({ 
    type:  "POST", 
    url:  url, 
    success: function(data) { 
        console.log(data.scenes.when); 
       }, 
    error:  function() { 
        alert("Call" + url + " failed..."); 
       } 
}); 

С моим кодом на консоли у меня есть undefined. Я хочу прочитать все данные этого json в JQuery и написать его на консоли. Как мне это сделать? Заранее спасибо.

+0

[JSON.parse()] (HTTPS://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/JSON/parse) – Lewis

+5

Возможный дубликат [как анализировать json-данные с помощью jquery/javascript?] (http://stackoverflow.com/ вопросы/8951810/how-to-parse-json-data-with-jquery-javascript) –

+2

ваш JSON ошибочен, измените эту строку "do [' to '" do ": [' – gurvinder372

ответ

0

Хорошо, я решил эту проблему. Сначала я повторяю три раза json, и я помещаю его содержимое в массив trigger_json.

$.each(data, function(key, val) { 
    json.push(val); 
}); 
$.each(json[2], function(key, val) { 
    scenes.push(val); 
}); 
$.each(scenes[0], function(key, val) { 
    trigger_json.push(val); 
}); 

Далее, чтобы использовать содержимое массива (когда делать, Гото, е ..) Я итерацию trigger_json таким образом:

for(i=0; i<trigger_json.length; i++) 
{ 
    // Use for example trigger_json[i].when.event 
    for(j=0; j<trigger_json[i].do.length; j++) 
    { 
     // Use for example trigger_json[i].do[j].action 
    } 
} 
0

Вы можете использовать $.getJSON
Пример:

$.getJSON("url/to/file.json", function(data) { 
    var items = []; 
    $.each(data, function(key, val) { 
    items.push(key + ': ' + val); 
    }); 
    console.log('items: ', items); 
}); 
+0

Хорошо, теперь я могу читать название и дату, но в сценах у меня есть сцены: [object Object], [object Object] '. Как я могу читать 'when',' event' и 'do'? –

+0

Используйте 'JSON.parse': console.log ('items:', JSON.parse (items)); – lifeisgame

0

попробовать так:

$.getJSON("ajax/test.json", function(data) { 
    var items = []; 
    $.each(data, function(key, val) { 
    items.push("<li id='" + key + "'>" + val + "</li>"); 
    }); 

    $("<ul/>", { 
    "class": "my-new-list", 
    html: items.join("") 
    }).appendTo("body"); 
}); 
+0

Хорошо, теперь я могу читать название и дату, но в сценах у меня есть сцены: [object Object], [object Object] '. Как я могу читать 'when',' event' и 'do'? –

0

Я дам вам некоторые подсказки, как мой JSON является

{ 
$id: "1", 
UserId: 1089, 
Name: "abc", 
Email: "[email protected]", 
Password: "&*&*", 
Phone: "9000000000", 
Gender: "M", 
AvatarName: "Jellyfish.jpg", 
AvatarPath: "c:/folder", 
CreatedAt: "2015-12-09T13:19:57.68", 
ModifiedAt: "2016-01-11T15:16:25.297", 
DOB: "05/06/1993" 
} 

и я набрал ли ка, что

$(document).ready(function() { 
    $("#btn").on("click", function(a) { 
     var e = $("input#Email").val(); 
     $.getJSON("http://192.168.0.1:24402/api/user/showbyemail?Email=" + e, function(a) { 
      $("input#Email").val(""), $("img#a").hide(); 
      var e = a.AvatarPath; 
      $("#stage").html('<img id="a" src="'+ e + '" height="200" width="400">'), 
       $("img#a").hide(), 
       $("img#a").show(1e3), 
       $("#stage").append("<p> Name: " + a.Name + "</p>"), 
       $("#stage").append("<p>Phone : " + a.Phone + "</p>"), 
       $("#stage").append("<p> Gender: " + a.Gender + "</p>"), 
       $("#stage").append("<p> Email: " + a.Email + "</p>"), 
       $("#stage").append("<p> Password: " + a.Password + "</p>") 
     }) 
    }), $(document).keypress(function(a) { 
     13 == a.which && $("#btn").click() 
    }) 
}); 

это может помочь вам дружище

+0

Извините, но мой json отличается от вашего, потому что у меня есть (и я хочу прочитать) некоторый «объект» в свой json-файл. –

+0

https://jsfiddle.net/Praveent696/sz6hhkzm/ попробуйте это, чтобы получить доступ к вложенному json –

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