如何在jquery / ajax中解析从控制器到视图的json值

时间:2014-01-20 10:24:03

标签: jquery ajax json

我正在使用CodeIgniter,因为我需要从控制器

解析json字符串

这是我的代码:

   public function autosuggest_country(){
    $query = $this->db->query("SELECT country, count(country) as `Total` FROM list GROUP BY country");

        //echo"<pre>"; print_r($query->result()); 
        echo json_encode($query->result());     } 

获取输出

[{"country":"Colombia","Total":"1"},{"country":"Estonia","Total":"1"},{"country":"India","Total":"13"},{"country":"Mexico","Total":"1"},{"country":"USA","Total":"1"}]

我不知道如何将这个json类型的输出解析为$ .getJSON()数据参数?

先谢谢

2 个答案:

答案 0 :(得分:2)

请仔细阅读jQuery api页面中的 getJSON()方法。

所有内容都描述了如何根据您的要求处理您的json数据。

getJSON()是Ajax函数的简写,相当于

$.ajax({
    dataType: "json",
    url: url,
    data: data,
    success: success
});

因此,您可以轻松访问以下网址中描述的json数据。

http://api.jquery.com/jquery.getjson/

答案 1 :(得分:1)

如果你有

var obj = '[{"country":"Colombia","Total":"1"},{"country":"Estonia","Total":"1"},{"country":"India","Total":"13"},{"country":"Mexico","Total":"1"},{"country":"USA","Total":"1"}]'

你可以使用JSON.parse(obj);,它的普通/ vanila javascript。 Example

有关 JSON.parse()

的更多信息

如果您使用的是jQuery ajax,则可以将dataType设置为json:

  

“json”:将响应计算为JSON并返回JavaScript对象。 JSON数据以严格的方式解析;任何格式错误的JSON都会被拒绝,并抛出一个解析错误。从jQuery 1.9开始,空响应也被拒绝;服务器应该返回null或{}的响应。 (有关正确的JSON格式的更多信息,请参阅json.org。)

这是标准的ajax代码的样子:

$.ajax({
  type: "GET",
  url: "yourfile.php",
  dataType: "json",
  success: function(data, text){
     //here is your object "data"
  }
});