如何解析从URL检索的JSON?

问题描述:

我想在JSP中检索和解析JSON。该URL返回以下JSON字符串:如何解析从URL检索的JSON?

{"status":1,"msg":"List of Rooms","id":["1","2","3"],"name":["php","Java","myroom4"]} 

我已经尝试如下解析它:

<script type="text/javascript" charset="utf-8"> 
    $.get('url', function(data, textStatus) { 
     alert('Status is '+textStatus); 
     alert('JSON data string is: '+data); 

     var myJson = JSON.parse(data); 
     var myJson = JSON.parse(textStatus); 
     var myJsonObj = jsonParse(myJson); 

     var x=document.getElementById("Roomcount"); 
     alert(x.innerHTML); 
    }, 'text'); 
</script> 

我无法理解什么错误。

您已将数据类型设置为'text'而不是'json'。这是行不通的。修复或删除它。如果在服务器端正确设置了Content-Type标头,则$.get()将返回data作为JSON。假设URL指向一个servlet,你需要写响应之前添加此行:

response.setContentType("application/json"); 

这样的data将直接成为一个JSON对象已经,您可以为访问如下:

$.get('url', function(data) { 
    alert(data.status); // 1 
    alert(data.msg); // List of rooms 
    alert(data.id); // ["1","2","3"] 
    alert(data.name); // ["php","Java","myroom4"] 
});