2016-11-07 7 views
0

У меня есть JSP на сервере, который возвращает мне JSON как это: { «ссылка»: «LINK_TEST», «название»: «TITLE_TEST»}данных Синтаксического JSON из JSP

Я пытаюсь получить это данные с клиентской html-страницы, но я могу это сделать.

это код JSP:

<%@page contentType="text/html; charset=UTF-8"%> 
<%@page import="org.json.simple.JSONObject"%> 
<% 
    JSONObject json = new JSONObject(); 
    json.put("title", "TITLE_TEST"); 
    json.put("link", "LINK_TEST"); 
    out.print(json); 
    out.flush(); 
%> 

СПЯ выглядит следующим образом: { "ссылка": "LINK_TEST", "название": "TITLE_TEST"}

И это на стороне клиента код:

<!DOCTYPE html> 
    <html> 
    <head>   
    <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.5.1/jquery.min.js"></script> 
    <script> 
      $.ajax({ 
       url : 'http://my_ip:my_port/json.jsp', 
       data : { search: 'test' }, 
       dataType: 'json', 
       success : function(json) { 

       var ob = jQuery.parseJSON(json); 
       alert(ob.link+" "+ob.title); 

       document.getElementById("uno").innerHTML = ob.link; 
       document.getElementById("dos").innerHTML = ob.title; 
       } 

      }); 
    </script> 
    </head> 
    <body> 

    <h1 id="uno"></h1> 
    <h1 id="dos"></h1> 

    </body> 
    </html> 
+0

jQuery уже будет десериализовать JSON для вас, поскольку вы устанавливаете 'dataType:; json'', поэтому вы можете удалить строку' var ob = jQuery.parseJSON (json); '. Пожалуйста, проверьте консоль на наличие других ошибок. Также обратите внимание, что jQuery 1.5.1 * очень устарел. Вы должны использовать 1.12 на самом старом уровне. –

+0

Спасибо @Rory McCrossan, я внесем изменения – dbz

+0

И каков результат? Какова ценность json? – AxelH

ответ

0
Put it inside document.ready it will work and comment out datatype . i..e, 
    <pre> 
    &lt;script&gt; 
    $(document).ready(function() { 
    $.ajax({ 
     url : 'http://localhost:8080/json.jsp', 
     data : { search: 'test' }, 
     success : function(json) { 
      var ob = jQuery.parseJSON(json); 
      alert(ob.link+" "+ob.title); 
      document.getElementById("uno").innerHTML = ob.link; 
      document.getElementById("dos").innerHTML = ob.title; 
     } 
    }); 
    }); 
    &lt;/script&gt; 
    </pre> 
0

Попробуйте

//start ajax request 
    $.ajax({ 
     url: "data.json", 
     //force to handle it as text 
     dataType: "text", 
     success: function(data) { 

      //data downloaded so we call parseJSON function 
      //and pass downloaded data 
      var json = $.parseJSON(data); 
      //now json variable contains data in json format 
      //let's display a few items 
      for (var i=0;i<json.length;++i) 
      { 
       $('#results').append('<div class="name">'+json[i].name+'</>'); 
      } 
     } 
    }); 
+0

Я не знаю, почему, но это не работает мой друг @ Албин – dbz

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