如何使用jQuery从JSON对象中获取值?

4

我有以下ajax调用和它返回的json源。如何使用jquery从源中获取数据对象即FRI的值?

$.ajax({
    url: query,
    type: "GET",
    dataType: "json"
    success: function(data) {
        var day = // get data value from json
        $("#Day").val(day);
    }
});    

{
   "name":"workdays",
   "columns":[
      "day"
   ],
   "data":[
      [
         "FRI"
      ]
   ]
}     

* 更新 *

如果返回的结果为jsonp格式,那么提取值“FRI”的语法应该是怎样的? :

import({
  "Results":{
    "work_days":{
        "empid":100010918994,
        "day":"FRI"
     }
  }
});

1
你可以像访问普通的Javascript对象一样访问它。我不太确定我理解你具体在问什么... data.data - Lix
@MarcB:说“JSON就是JavaScript”非常误导人。它的语法看起来像JavaScript的子集,但是JavaScript的一些部分看起来像C。那么我们会说JavaScript就是C吗?实际上,JSON/JavaScript甚至更加独立,因为JSON根本不是任何编程语言。 - user1106925
@squint说JavaScript就像C语言一样是非常错误的,这种说法比JSON是JavaScript更加错误。JSON是JavaScript的“对象”。 - Arg0n
@Arg0n:JSON不是JavaScript对象。它是一种文本表示数据的格式,使用类似于JavaScript(或其他语言)的语法。语法和它所代表的数据之间有很大的区别。 - user1106925
@Squint 所以你可以直接将 C 用作 JavaScript 吗?我不知道。但我知道你可以将任何 JSON 分配给 JavaScript 对象。 - Arg0n
显示剩余7条评论
7个回答

4

这只是JavaScript,不是jQuery。

var data = {
   "name":"workdays",
   "columns":[
      "day"
   ],
   "data":[
      [
         "FRI"
      ]
   ]
}

data.data[0][0]; //FRI

更新

var obj = {
  "Results":{
    "work_days":{
        "empid":100010918994,
        "day":"FRI"
     }
  }
}

obj.Results.work_days.day //FRI

如果结果以jsonp返回,如何获得相同的值-请参见更新的帖子。 - adam78

3
如果后者的json是从服务器获取的json,你可以按照以下方式获取数据:
var day = data.data[0][0];

这将把值FRI放入变量day中。

编辑:如果您使用的是最新的浏览器,您可以始终执行console.log(data)并在JavaScript控制台中查看变量中的内容。


1
    $.ajax({
    url: query,
    type: "GET",
    dataType: "json"
    success: function(data) {
        var day = data.data[0][0] // get data value from json
        $("#Day").val(day);
    }
});    

{
   "name":"workdays",
   "columns":[
      "day"
   ],
   "data":[
      [
         "FRI"
      ]
   ]
} 

OP正在询问如何获取“FRI”,而不是“day”。 - Arg0n

0

JSON 是 JavaScript 对象,所以您可以访问它的任何属性:

data.name
data.columns
data.data

0

您不需要使用jQuery,数据是一个JavaScript对象(哈希表)。您可以按照以下方式访问数据:

data.columns

或者

data["columns"]

0

用于检索“数据”字段

$.ajax({
url: query,
type: "GET",
dataType: "json"
success: function(data) {
    var day = data['data']; // get data value from json
    $("#Day").val(day);
}
});    

{
   "name":"workdays",
   "columns":[
   "day"
],
"data":[
   [
     "FRI"
   ]
]
} 

0
你有没有检查过 data.d 变量?
success: function(data) {
   console.log(data.d); //prints the value
}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接