2012-11-19 20 views
7

Próbuję zwrócić dane JSON z podanego adresu URL, ale gdy pojawi się alert, po prostu pokazuje [obiekt obiektu] (zdaję sobie sprawę, że obiekt obiektu nie jest w rzeczywistości błąd). Chciałbym wypluć nazwę pozycji i inne pola w ostrzeżeniu. Jak mam to zrobic?JSON zwraca [obiekt obiektu]

Oto przykład z JSON szukam w (pełny plik ma około 30 komentarze)

[ 
    { 
    "m_id": 473644, 
    "m_positionName": "Application Monitoring Software Engineer", 
    "m_positionLocations": [ 
     {} 
    ], 
    "m_active": true, 
    "m_description": "Job Responsibilities:\r\n\r\n-Create world class application monitoring tools and dashboards for our health care applications\r\n\r\n-Develop business rules to pro actively identify and re-mediate system-level issues before they occur.\r\n\r\n-Create business intelligence reports for internal and external use as a supplement to software products.\r\n\r\n\r\n\r\nJob Requirements:\r\n\r\n-BS or MS Degree in computer science or any engineering discipline.\r\n-4+ years of experience with Java (or other object-oriented programming language).\r\n-Experience in SQL, Struts, Hibernate, Spring, Eclipse, JSP, JavaScript.\r\n-Highly motivated and self-driven personality.\r\n-Excellent interpersonal and leadership skills.\r\n-A vision for the future and a desire to make a difference.\r\n-Experience with Maven, Tomcat, PostgreSql, Jasper Reports,", 
    "m_postedDate": "Jun 29, 2012 9:17:19 AM", 
    "m_closingDate": "Jun 29, 2013 12:00:00 AM" 
    } 
] 

A oto skrypt używam.

$.ajax({ 
type: "GET", 
url: '/wp-content/themes/twentyeleven/js/jobopenings.json', 
async: false, 
beforeSend: function(x) { 
    if(x && x.overrideMimeType) { 
    x.overrideMimeType("application/j-son;charset=UTF-8"); 
    } 
}, 
dataType: "json", 
success: function(data){ 
alert(data); 
} 
}); 

Każda pomoc jest doceniana.

+9

użyć 'console.log' zamiast' alert'. – undefined

Odpowiedz

6

Spróbuj tego:

success: function(data) 
{ 
    var _len = data.length; 
    , post, i; 

    for (i = 0; i < _len; i++) { 
    //debugger 
    post = data[i]; 
    alert("m_positionName is "+ post. m_positionName); 
    } 
} 
+1

Teraz gotujemy. To wypluwa każdą pozycję, dziękuję! – gschervish

+0

Teraz, gdybym chciał dołączyć te dane do ciała, zamiast ostrzec je, co napisałbym. Wpadłem na to, ale nie działa. '('

  • '+ "m_positionName jest" + post.m_positionName +'
  • ') .appendTo (' korpus'); ' – gschervish

    +1

    @ user1324700 ' sukcesem funkcja (dane) { var _len = data.length ; , $ span = $ ('') , post, i; dla (i = 0; i <_len; i ++) { // debugger post = dane [i]; $ span.html ("m_positionName to" + post. M_positionName) .appendTo ("body"); alert ("m_positionName is" + post. M_positionName); } } ' – eseceve

    18

    Zawsze można przekształcić obiekt w ciąg znaków i ostrzec o tym.

    alert(JSON.stringify(data)); 
    
    +0

    To wypluwa dane w obiekcie, ale chcę specjalnie wypluć pole m_description do jakiegoś html, powiedzmy ** li ** – gschervish

    0

    Gdy jQuery odbierze json, jQuery automatycznie przekonwertuje go na obiekt javascript. Tak więc data właśnie zawiera twój obiekt gotowy do użycia. Jeśli chcesz uzyskać dostęp do oryginalnego tekstu odpowiedzi, można to zrobić:

    success: function(data, textStatus, jqXHR){ 
        alert(jqXHR.responseText); 
    } 
    
    +0

    To wypluwa tekst nieprzetworzony, ale chcę wypluć 'm_positionName', 'm_description' i inne – gschervish