可能重复:
如何访问数字属性?
我正在尝试读取键是数字的对象。但不幸的是,当我尝试阅读这个对象时:
Salary:{
"2012_08":"5555",
"2012_09":"6666",
"2012_10":"7777"
}
var augsalary = salary.2012_08;
它抛出一个错误。我的问题是:“2012_08”是年月组合,不能更改为存储为字符串。我怎样才能使用该键访问该值?
可能重复:
如何访问数字属性?
我正在尝试读取键是数字的对象。但不幸的是,当我尝试阅读这个对象时:
Salary:{
"2012_08":"5555",
"2012_09":"6666",
"2012_10":"7777"
}
var augsalary = salary.2012_08;
它抛出一个错误。我的问题是:“2012_08”是年月组合,不能更改为存储为字符串。我怎样才能使用该键访问该值?
可以使用大括号表示法访问所有对象属性。
采用
var augsalary = salary['2012_08'];
请注意,如果您希望它为整数(并且不能更改 JSON 以发送数字),您可以使用:
var augsalary = parseInt(salary['2012_08'], 10);
首先,您的 Javascript 代码无效,也许您的意思是
var Salary = {
"2012_08":"5555",
"2012_09":"6666",
"2012_10":"7777"
}
var augsalary = salary.2012_08;
其次,一个非常常见的混淆是谈论 JSON 对象。Salary
不是 JSON 对象,它是 JavaScript 对象。JSON 是一种表示法,用于将所有 JavaScript 对象的大部分子集表示为字符串。然后可以将这些字符串传输到代码的其他部分或其他计算机,在那里它们可以转换回对象进行处理。所以你的问题Salary
是从接收到的 JSON 字符串转换的数据。
JS 有数组和对象。
对象是最基本的,它们可以具有名称可以是任意字符串的属性。提供了两种形式的对象属性访问:大括号和点符号。大括号表示法是通用的,您将属性名称值指定为对象名称后大括号内的字符串或变量值。点表示法是一种简写,只有在属性名称具有有效 JS 变量名称形式时才能使用。
数组是基本对象,具有维护其数字属性名称的有序列表的附加功能。您可以将非数字属性名称添加到数组,但它们不参与任何 Array 函数。
因此,在您的示例中,您没有数字键或属性名称,因为它们包含“_”字符。由于它们以数字开头,因此您不能使用点表示法,而必须使用大括号表示法来访问它们,如下面的dystroy所述。
希望我的小课能帮助你更好地理解基础知识。