Reading JSON data in jQuery AJAX post output

18,679

Solution 1

As per your given output:

Try this:

$(function(){

    var  data = {"msg":{"1":{"Name":"John Doe","Said":"Hello there"},"2":{"Name":"Jane King","Said":"Hello there"}},"errors":{"1":{"Person":"Jane King","type":"Wrong Screwdriver"},"2":{"Person":"John Doe","type":"Wrong Spanner"}}};

    $.each(data.msg, function(index, value) {
      alert(index + ': ' + value.Name);
    });

});

JSFiddle Example

Solution 2

Demo Link

var data = {"msg":{"1":{"Name":"John Doe","Said":"Hello there"},"2":{"Name":"Jane King","Said":"Hello there"}},"errors":{"1":{"Person":"Jane King","type":"Wrong Screwdriver"},"2":{"Person":"John Doe","type":"Wrong Spanner"}}};


$.each(data['msg'], function(key, element){
    console.log(key+' : '+element['Name']);
});

$.each(data['errors'], function(key, element){
    console.log(key+' : '+element['Person']);
});
Share:
18,679
sam fisher
Author by

sam fisher

Updated on June 11, 2022

Comments

  • sam fisher
    sam fisher about 2 years

    I have the code below which i am passing through json to jquery.

    $string['msg']['1']['Name'] = "John Doe";
    $string['msg']['1']['Said'] = "Hello there";
    
    $string['msg']['2']['Name'] = "Jane King";
    $string['msg']['2']['Said'] = "Hello there";
    
    $string['errors']['1']['Person'] = "Jane King";
    $string['errors']['1']['type'] = "Wrong Screwdriver";
    
    
    $string['errors']['2']['Person'] = "John Doe";
    $string['errors']['2']['type'] = "Wrong Spanner";
    

    The JSON output is below:

    {"msg":{"1":{"Name":"John Doe","Said":"Hello there"},"2":{"Name":"Jane King","Said":"Hello there"}},"errors":{"1":{"Person":"Jane King","type":"Wrong Screwdriver"},"2":{"Person":"John Doe","type":"Wrong Spanner"}}}
    

    This is the ajax code that is retreiving the json.

    $.ajax({
        dataType : 'json',
        url: 'polling.php',
        type: 'post',
        data: 'id=1',
        success: function(data) {
            //read json     
    
    });
    

    I am trying to read all 'msg' in order of number.. 1, 2.. and get 'Name' and 'Said' values for each.

    Then do the same for 'errors'

    but i cant correctly retrieve any values