2013-05-29 19 views
9

Rozpoczęcie pracy nad projektem, który jest całkowicie zbudowany na danych JSON. Jest on zwrócony tak:Jak wyświetlić zwrócone JSON z posta jQuery .ajax

{"location":{"id":10,"contactPhone":"8675309","contactName":"bob","name":"bill smith","zipCode":"90210","state":"California","address1":"104 S. Olive","city":"Temecula","country":"USA"},"success":true} 

Jestem komfortowe przetwarza dane zwracane w postaci HTML (zwykle tabelach) przez przejeżdżające DOM z .find i innych filtrowania, aby znaleźć flagi sukcesu. Nie mam pojęcia, jak to zrobić z JSONem - muszę filtrować do ostatniego obiektu "sukces" i sprawdzać, czy jest to prawda czy fałsz. Z zwrócony HTML dane robię to tak:

submitHandler: function(form) { 
    $.ajax({ 
    //other ajax stuff 
     success: function(data) { 
     var answer = $(data).find("td:eq(1)").text(); 
     var message = $(data).find("td:eq(3)").text(); 
     //console.log(data); 
     if (answer == "True") { 
      $('#messages').show().html(message); 
     } else { 
      $('#messages').show().html('Error logging in: ' + message); 
     } 
    } 
    }); 
    return false; 
    } 
  1. Nawet po użyciu tej metody nie w pełni zrozumieć, co funkcyjne (dane) oznacza, Ive używane danych, MSG i odpowiedzi bez zrozumienia, jaka jest różnica między nimi.

jestem w stanie odpowiedzieć na usługa i uzyskać JSON zwrócony z tym .ajax zadzwonić

$.fn.serializeObject = function() {....} 
submitHandler: function(form){ 
    var wrapper = {}; 
    var location = {}; 
    wrapper.location = $("#newLocation").serializeObject(); 
     $.ajax({ 
      type: $(form).attr('method'), 
      url: '/web/service/' + 'locationService' + '/' + 'createLocation', 
      dataType: 'json', 
      async: false, 
      data: JSON.stringify(wrapper), 
      success: function(msg) { 
        console.log('success' + msg); 
        //need to traverse to success and if true, do something 
      }, 
        error: function(msg) { 
        console.log('failure' + msg); 
        //need to traverse to success and if false, do something 
      } 
    }); 
    return false; 
} 
  1. Jak można filtrować do „sukcesu” w ramach ciąg JSON (string lub object)
  2. Jakie są poprawne warunki dla par klucz/numer (jest to, że nawet prawidłowe) w ciągu JSON IE "contactPhone? ":" "
  3. W jaki sposób wyświetlasz dane, jeśli "sukces": "prawda" - sam nad tym popracuję, ale jeśli ktoś ma dobrą metodę, byłbym wdzięczny za radę. Wyobrażałabym sobie, jak po prostu wstawiasz się do stołu?

    Mam wiele pytań na temat JSON i staram się sformułować pytania w sposób ogólny, aby udzielona pomoc mogła pomóc komuś innemu, przepraszam za długość tego wpisu. Doceniam każdą pomoc i na życzenie skracam/edytuję to pytanie.

+1

„i staram się słowem pytania w ogólny sposób, aby pomoc, którą otrzymuję, może pomóc komuś innemu "to miłe +1 –

Odpowiedz

4

msg tutaj jest json sformatowany obiekt. Można uzyskać wartość sukcesu tak:

success: function(msg) { 
        console.log('success' + msg.success); 
        if(msg.success) { //could be wrote: msg.success === true 
         //do some stuff 
        } 
      }, 

"contactPhone": "8675309"

contactPhone jest kluczem "8675309" jest wartością. Ale w próbce, aby dostać "contactPhone" wartość, trzeba najpierw uzyskać Powierzchnia obiektu:

var contactPhoneValue = msg.location.contactPhone; 
+0

Więc po prostu szukasz słowa" sukces "w msg? Jak odróżnić "sukces": "prawda" i "sukces": "fałsz"? Dziękuję również za wyjaśnienie różnicy między kluczem/wartością. Myślę, że to pomoże później podczas analizowania danych i wyświetlania jako tabela, aby jakoś zignorować "klucz" i wyświetlać tylko "wartość" –

+1

jeśli (msg.success) jeśli jest true, jeśli (! Msg.success) jeśli false –

+0

Czy jest blisko poprawne założenie, że przechowujesz var dla każdego klucza/wartości, jak na przykład var contactPhoneValue = msg.location.contactPhone; i zrobić coś takiego (cholera nie wiem jak - będzie funkcja .each?) contactPhoneValue? –

3

JSON (JavaScript Object Notation) to lekki Format danych interchange. Ludzie mogą łatwo czytać i pisać. Łatwo jest parsować i generować maszyny. http://www.json.org/

Teraz kod do odczytu i zapisu właściwości obiektu json jest bardzo podobny do normalnego obiektu javascript.

Uzyskiwanie dostępu do obiektu javascript i Json i manipulowanie nimi jest takie samo.
Tutaj jest bardzo dobrym przewodnikiem dla nich:
http://www.dyn-web.com/tutorials/obj_lit.php



AKTUALIZACJA:
lepszą wersję, może to może pomóc:
http://jsfiddle.net/hvzcg/4/

+0

Dziękuję, mam nadzieję, że będzie to miało większy sens po przeczytaniu linków, które podałeś. Nadal nie nawiązuję połączenia, jak analizować ciąg znaków i wyświetlać wartości w tabeli –

+0

Edytowanie odpowiedzi na pytanie, jak przejść przez obiekt ... –

+0

Po prostu zrobiłbyś te same dane ['contactName'] = "nowe imię "; dla każdej pary klucz/wartość? Jeśli tak, to w jaki sposób wyświetlisz wynik? –