【问题标题】:sort json by jquery key value [duplicate]按jquery键值对json排序[重复]
【发布时间】:2012-11-20 18:39:54
【问题描述】:

可能重复:
Sorting a JavaScript object

我有一个这样的json数据

[
  {
    "name":"anand",
    "type":"0"
  },
  {
    "name":"bajaj",
    "type":"0"
  },
  {
    "name":"cat",
    "type":"1"
  }
]

我将这些数据填充到带有标题、名称和类型的表格中。

我已将这些数据存储在一个 javascript 全局数组中。现在我必须对该全局数组进行排序 根据key。

例如,当我单击名称时,它必须根据名称和类型进行排序。

我已经尝试了很多东西,但它给出了 sort is not a function 错误。

var data_obj= [];  // declared a global variable 

 $.ajax({url: url,
         type:"post",
         data: "folder="+folder,
         success: function(data){
             data_obj = data // here i store returned json data in a global variable 
         }  
 });

一个简单的排序函数

 data_obj.sort(function(a, b){
     return [a.name] < [b.name] ? -1 : 1;
 });

但它给我排序不是一个功能。请帮我按key排序。

【问题讨论】:

标签: jquery json sorting key


【解决方案1】:

大概是服务器发回的 JSON 带有错误的 Content-Type(编写 PHP 的人经常忘记用 header('Content-Type: application/json'); 覆盖默认的 HTML 内容类型)。

这将导致 data 成为 HTML DOM 而不是从 JSON 膨胀的数组,因此它不会有 sort 方法。

【讨论】:

  • 我已插入类型为 contentType: 'application/json',在 ajax 调用中仍然给出相同的错误
  • @user1403248 — contentType 属性记录在 向服务器发送数据时,使用此内容类型。它对响应没有任何影响(除非服务器对通过 500ing 获取 JSON request 做出反应,或者根本没有给你你想要的数据)。它是您需要更改的 response 中的 HTTP Content-Type 标头。
  • 非常感谢..它成功了
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2014-07-09
  • 2016-06-05
  • 1970-01-01
  • 1970-01-01
  • 2018-02-18
  • 1970-01-01
  • 2013-05-10
相关资源
最近更新 更多