在不知道密钥名称的情况下访问JSON对象的元素

Rad*_*adu 27 javascript vb.net asp.net json for-loop

这是我的json:

{"d":{"key1":"value1",
      "key2":"value2"}}
Run Code Online (Sandbox Code Playgroud)

有没有办法在不知道键是什么的情况下访问此数组中的键和值(在javascript中)?

我的json结构的原因是我通过jquery调用的web方法返回一个字典.如果无法使用上述内容,我需要更改有关返回数据的方式吗?

这是我的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
Run Code Online (Sandbox Code Playgroud)

Ate*_*ral 61

您可以使用该for..in构造迭代对象的任意属性:

for (var key in obj.d) {
    console.log("Key: " + key);
    console.log("Value: " + obj.d[key]);
}
Run Code Online (Sandbox Code Playgroud)

  • 完善。如果只有一对键值对,我还需要使用“ for in”吗? (2认同)

Xen*_*hyl 10

这是你在找什么?

var data;
for (var key in data) {
   var value = data[key];
   alert(key + ", " + value);
}
Run Code Online (Sandbox Code Playgroud)

  • 提示:不要调用JavaScript对象JSON对象.JSON是传输格式.解析后,就没有JSON了. (4认同)

Shi*_*tri 5

{
  "d":{
     "key1":"value1",
     "key2":"value2"
    }
}
Run Code Online (Sandbox Code Playgroud)

要访问第一个密钥写入:

   let firstKey=Object.keys(d)[0];
Run Code Online (Sandbox Code Playgroud)

要访问第一个键写入的值:

let firstValue= d[firstKey];
Run Code Online (Sandbox Code Playgroud)