2013-02-28 2 views
1

новый для Javascript здесь. У меня есть небольшая проблема с разбором JSON с JQuery. Я считаю, что это зависит от структуры моего JSON, но поскольку я использую эти сценарии для другой службы, так что вам не нужно будет менять структуру.Как разобрать JSON в цикле

Мой JSON выглядит следующим образом

{"customerInAccount":[{"customer_name":"Jane Doe","auto_id":"21"},{"customer_name":"Jack Black","auto_id":"22"}]} 

Я бы в идеале хотел бы использовать customer_name для заполнения ListView, и я также хотел бы сохранить auto_id где-то (возможно, локальное хранение), поэтому если выбран я могу представить соответствующие данные ,

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

ответ

1

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

$('#home').live('pageshow', function(){ 
    // creating object 
    var customerList = JSON.parse('{"customerInAccount":[{"customer_name":"Jane Doe","auto_id":"21"},{"customer_name":"Jack Black","auto_id":"22"}]}'); 

    // creating html string 
    var listString = '<ul data-role="listview" id="customerList">'; 

    // running a loop 
    $.each(customerList.customerInAccount, function(index,value){ 
    listString += '<li><a href="#" data-cusid='+this.auto_id+'>'+this.customer_name+'</a></li>'; 
    }); 
    listString +='</ul>'; 

    console.log(customerList); 

    //appending to the div 
    $('#CustomerListDiv').html(listString); 

    // refreshing the list to apply styles 
    $('#CustomerListDiv ul').listview(); 

    // getting the customer id on the click 
    $('#customerList a').bind('click',function(){ 
    var customerID = $(this).data('cusid'); 
    alert(customerID); 
    }); 
}); 

Здесь вы можете ознакомиться с активной рабочей скрипкой. http://jsfiddle.net/amEge/3/

+0

Первые два ответа были отличными и много объясняли мне, что позволило мне получить доступ и заполнить мой список, но ваш ответ пошел намного дальше и показал мне, как получить доступ к переменной id при щелчке, что очень полезно, спасибо всем , – user1668630

+0

рад, что это помогло вам :) –

3

Вы можете использовать jQuery для его простого анализа.

$.parseJSON(data); 

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

var json = $.parseJSON(data); 
for(var i=0; i<json.customerInAccount.length; i++){ 
    // do your stuff here.. 
} 

, если у вас возникли проблемы с ним, пожалуйста, дайте мне знать

1

использовать как этот

var value=yourJsonString 
var results=JSON.parse(value); 

$.each(results.customerInAccount,function(i,item){ 
// do with item 
alert( item.customer_name); 
}); 

рабочей демо: JSON parse with loop