0

重複の可能性:
数値プロパティにアクセスする方法は?

キーが数字であるオブジェクトを読み込もうとしています。しかし、残念ながら、このオブジェクトを読み込もうとすると、次のようになります。

Salary:{
  "2012_08":"5555",
  "2012_09":"6666",
  "2012_10":"7777"
}
var augsalary =  salary.2012_08;

エラーをスローします。私の質問はこれです:「2012_08」は年と月の組み合わせであり、文字列として保存するために変更することはできません。そのキーを使用して値にアクセスするにはどうすればよいですか?

4

2 に答える 2

6

すべてのオブジェクトプロパティには、中括弧表記を使用してアクセスできます。

使用する

var augsalary =  salary['2012_08'];

整数にしたい場合(そしてJSONを変更して数値を送信できない場合)は、次を使用できることに注意してください。

var augsalary =  parseInt(salary['2012_08'], 10);
于 2012-10-11T06:42:42.840 に答える
3

まず、あなたの 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 には配列とオブジェクトがあります。

オブジェクトは最も基本的なもので、任意の文字列の名前を持つプロパティを持つことができます。オブジェクト プロパティへのアクセスには、ブレースとドット表記の 2 つの形式が用意されています。中かっこ表記は普遍的です。プロパティ名の値を、オブジェクト名の後の中かっこ内の文字列または変数値として指定します。ドット表記は省略形であり、プロパティの名前が有効な JS 変数名の形式である場合にのみ使用できます。

配列は、数値プロパティ名の順序付きリストを維持する追加機能を持つ基本的なオブジェクトです。非数値のプロパティ名を配列に追加できますが、それらは配列関数には参加しません。

したがって、あなたの例では、「_」文字が含まれているため、数値キーまたはプロパティ名はありません。これらは数字で始まるため、ドット表記を使用できず、以下のdystroyで説明されているように、ブレース表記を使用してアクセスする必要があります。

私の小さなレッスンが、基本をよりよく理解するのに役立つことを願っています.

于 2012-10-11T07:16:06.397 に答える