web-dev-qa-db-ja.com

キー名を知らずにJSONオブジェクトの要素にアクセスする

これが私のJSONです。

{"d":{"key1":"value1",
      "key2":"value2"}}

キーが何であるかを知らずに、この配列のキーと値(javascript内)にアクセスする方法はありますか?

私のjsonがこのように構成されている理由は、jqueryを介して呼び出しているwebmethodが辞書を返すためです。上記で作業することができない場合、データを返す方法について何を変更する必要がありますか?

私のwebmethodの概要は次のとおりです。

<WebMethod()> _
Public Function Foo(ByVal Input As String) As Dictionary(Of String, String)
    Dim Results As New Dictionary(Of String, String)

    'code that does stuff

    Results.Add(key,value)
    Return Results
End Function
25
Radu

for..inコンストラクトを使用して、オブジェクトの任意のプロパティを反復処理できます。

for (var key in obj.d) {
    console.log("Key: " + key);
    console.log("Value: " + obj.d[key]);
}
57
Ates Goral

これはあなたが探しているものですか?

var data;
for (var key in data) {
   var value = data[key];
   alert(key + ", " + value);
}
9
Xenethyl

Forループを使用して同じことを実現します。

var dlist = { country: [ 'ENGLAND' ], name: [ 'CROSBY' ] }

for(var key in dlist){
     var keyjson = dlist[key];
     console.log(keyjson)
   }
3
KARTHIKEYAN.A

Word "b"を使用することにより、キー名を使用しています。

var info = {
"fname": "Bhaumik",
"lname": "Mehta",
"Age": "34",
"favcolor": {"color1":"Gray", "color2":"Black", "color3":"Blue"}
};

以下のスニペットをご覧ください。

for(key in info) {
  var infoJSON = info[key];
  console.log(infoJSON);
}

結果は、

Bhaumik
Mehta
Object {color1: "Gray", color2: "Black", color3: "Blue"} 

その最後の行を表示したくないですか?次のコードを試してください:

for(key in info) {
  var infoJSON = info[key];
    if(typeof infoJSON !== "object"){
       console.log(infoJSON);
  }
}

これにより、Object {color1: “Gray”, color2: “Black”, color3: “Blue”}コンソールに表示されません。

ここで、変数infoJSONを反復処理して配列値を取得する必要があります。次のコード全体を見てください。

for(key in info) {
    var infoJSON = info[key];
    if (typeof infoJSON !== "object"){
       console.log(infoJSON);
    }
 }

for(key1 in infoJSON) {
    if (infoJSON.hasOwnProperty(key1)) {
       if(infoJSON[key1] instanceof Array) {
          for(var i=0;i<infoJSON[key1].length;i++) {
             console.log(infoJSON[key1][i]);
          }
        } else {console.log(infoJSON[key1]);}
    }
 }

そして今、私たちは次のような結果を得ました

Bhaumik
Mehta
Gray
Black
Blue

キー名またはIDを使用する場合、JSONオブジェクトから値を取得するのは非常に簡単ですが、ここではキー名またはIDを使用せずに値を取得しています。

2
Bhaumik Mehta
{"d":{"key1":"value1",
  "key2":"value2"}}

最初のキー書き込みにアクセスするには:

   let firstKey=Object.keys(d)[0];

最初のキー書き込みの値にアクセスするには:

let firstValue= d[firstKey];
0
Shivam Chhetri