4

このデータにアクセスするにはどうすればよいですか?

これが私のJsonです:

 {
  "6a768d67-82fb-4dd9-9433-d83dbd2f1b78": {
    "name": "Bahut",
    "11": {
      "timestamp": 1380044486000,
      "value": "false"
    }
  },
  "4f4a65e4-c41b-4038-8f62-76fe69fedf60": {
    "name": "Vit",
    "11": {
      "timestamp": 1380109392000,
      "value": "false"
    }
  },
  "a12d22cc-240e-44d6-bc58-fe17dbb2711c": {
    "name": "Cuis",
    "11": {
      "timestamp": 1379883923000,
      "value": "false"
    }
  }
}

各エントリの ID (xxxxxxxx-xxxx-...-xxxxxxxxx) と「名前」を読み取って抽出し、配列に入れようとしています。

しかし、私はそれをすることができませんでした。

しようとしている:

var nameid = json.'XXXXX-....-XXXX'.name;

または「-」を「」に置き換えます

var nameid = json.XXXXXXXXX.name;

もうまくいきませんでした。

4

5 に答える 5

7

id キーに関連付けられたサブオブジェクトを取得するには、配列スタイルのアクセスを使用する必要があります。

var nameid = json["a12d22cc-240e-44d6-bc58-fe17dbb2711c"].name; // or ["name"]
// nameid => "Cuis"

これは、ハイフンがドット スタイルのアクセスに有効な文字ではないためです (JavaScript の変数名ではハイフンを使用できません)。

すべてを抽出するには、オブジェクトをループして、次のように配列に追加する必要があります。

var arr = [];
for (var id in json) {
    arr.push(json[id]["name"]);
}

これにより、その JSON オブジェクト内のすべての名前の配列が得られます。

于 2013-09-25T19:50:09.230 に答える
1

Object.keysプロパティの配列を取得するために使用できます。

var js = JSON.parse(json);
var props = Object.keys(js);

var result = props.map(function(prop) {
  return {
    id: prop,
    name: js[prop].name;
  };
});

最終結果は、2 つのプロパティを持つオブジェクトの配列です: idname

于 2013-09-25T19:51:44.347 に答える
1

データをループしたい場合は、for inループを使用します。

for (var key in obj) { //obj is your data variable
    console.log(key); //xxxx-x-xx-x-x-xxxx
    console.log(obj[key].name); //the name for each
}
于 2013-09-25T19:51:52.300 に答える
0

ループの一般的な方法ではありませんが、この場合、json オブジェクトをループすることができます

for (var prop in json){
     print("prop",json[prop].name);
}
于 2013-09-25T19:53:06.353 に答える
0

配列と同じように JSON にアクセスします。

data["a12d22cc-240e-44d6-bc58-fe17dbb2711c"].name

jsfiddle

于 2013-09-25T19:51:45.817 に答える