如何在 Jquery 中使用 JSON?

Posted

技术标签:

【中文标题】如何在 Jquery 中使用 JSON?【英文标题】:How to use JSON with Jquery? 【发布时间】:2010-10-05 15:59:56 【问题描述】:

我正在开发一个应用程序,它会向我服务器上的 php 脚本发出 POST ajax 请求。该脚本将查询数据库并以数组的形式返回一行记录。 (每行一个数组,包含 id、title 等元素)。然后我想使用json_encode() 来编码这个数组,并将它传回javascript,它会用它来显示记录。

1) 如何将 JSON 编码的字符串返回到 javascript? 2) javascript 将如何遍历行并访问它们的字段?

【问题讨论】:

【参考方案1】:

要使用 jQuery 获取 JSON,只需使用 jQuery.getJSON()。或者,您可以使用任何其他 AJAX 工具,然后只需 eval() json 即可获取 javascript 对象。

要遍历一个数组,我通常使用jQuery.each():

var recordList = yourMethodToGetRecordListWithAjax();

jQuery.each(recordList, function()

    alert(this.Name); // For example
);

【讨论】:

您的回答中有一个小错字,jquery.each 应该是 $.each。除此之外效果很好:) 这是我的代码:$.getJSON("getData.php",data,myFunctionToLoopThroughResults); $ 是 jQuery 的快捷方式 - 我更喜欢为 each() 之类的“静态”事物编写 jQuery,而将 $ 用于查询之类的“非静态”事物,因为我相信它可以提高可读性。跨度> 但这真的取决于你和你的个人品味。 我尝试使用 jquery,但它在 firebug 中给了我一个错误,所以我不知道【参考方案2】:

1) 在 php 脚本中:

$return["foo"]  = "bar";
$return["blah"] = "bleg";
print json_encode($return);

2) 在javascript中:

$.ajax(
  type: "POST",
  url: URL,
  cache: false,
  data: values,
  dataType: 'json',
  success: function(json) 
    var foo = json.foo;
    if (json.blah == "bleg") 
      // do stuff 
    
   // end success function
); // end ajax call

【讨论】:

【参考方案3】:

您可以通过使用 application/json 的 Content-Type 回显将 JSON 编码的字符串返回给 JS。

其余的请参见上面的答案。

【讨论】:

以上是关于如何在 Jquery 中使用 JSON?的主要内容,如果未能解决你的问题,请参考以下文章

如何在laravel中使用json将json数组打印到jquery表?

如何使用 jquery 在 html 中显示我的 json 结果?

如何在 jQuery 中解析 JSON 数组?

如何在 JQuery 表单构建器中使用 JSON 呈现表单

如何使用 Javascript 或 Jquery 将 JSON 对象包装在数组中?

如何使用 jQuery 在 JSON ajax 请求中回调 404 上的函数?