Javascript 遍历嵌套对象文字数据

Javascript 遍历嵌套对象文字数据,javascript,multidimensional-array,nested,traversal,object-literal,Javascript,Multidimensional Array,Nested,Traversal,Object Literal,我一直在浏览论坛,我所看到的任何解决方案都不适用于我的案例,除非我做错了。我试图列出连接到jQuery地图插件的不同状态的数据。基本上,用户将单击一个州,州法律将附加在地图下方。现在,我的JSON树看起来像: var states = { "AL" : { "longname" : "Alabama", "lawOne" : "Text for Law 1", "lawTwo" : "Text for Law 2", "lawThre

我一直在浏览论坛,我所看到的任何解决方案都不适用于我的案例,除非我做错了。我试图列出连接到jQuery地图插件的不同状态的数据。基本上,用户将单击一个州,州法律将附加在地图下方。现在,我的JSON树看起来像:

var states = {
   "AL" : {
       "longname" : "Alabama",
       "lawOne" : "Text for Law 1",
       "lawTwo" : "Text for Law 2",
       "lawThree" : "Text for Law 3"
   },
   "AK" : {
       "longname" : "Alaska",
       "lawOne" : "Text for Law 1",
       "lawTwo" : "Text for Law 2",
       "lawThree" : "Text for Law 3"
   },
   etc...
}
根据问题的答案,我可以深入研究第2层嵌套数据,但状态的入口点似乎是阻塞。我需要缩写的状态名,因为这是MapAPI在单击状态时吐出的数据。你知道为了实现这一目标还需要执行哪些其他步骤吗?似乎在一个对象中找到一个对象是没有答案的。提前谢谢

编辑:当我意识到自己很笨拙,这是一个对象文字,而不是JSON时,我找到了我想要的确切答案。我找到了答案

您只需要使用它来获取缩写名,缩写名定义为
状态
对象的属性

var状态={
“AL”:{
“longname”:“阿拉巴马州”,
“法律一号”:“法律一号文本”,
“第二条法律”:“第二条法律的文本”,
“第三条法律”:“第三条法律的文本”
},
“AK”:{
“longname”:“阿拉斯加”,
“法律一号”:“法律一号文本”,
“第二条法律”:“第二条法律的文本”,
“第三条法律”:“第三条法律的文本”
}
}
console.log(Object.keys(states))
您只需要使用它来获取缩写名,缩写名定义为
state
对象的属性

var状态={
“AL”:{
“longname”:“阿拉巴马州”,
“法律一号”:“法律一号文本”,
“第二条法律”:“第二条法律的文本”,
“第三条法律”:“第三条法律的文本”
},
“AK”:{
“longname”:“阿拉斯加”,
“法律一号”:“法律一号文本”,
“第二条法律”:“第二条法律的文本”,
“第三条法律”:“第三条法律的文本”
}
}

console.log(Object.keys(states))
您可以迭代并获得如下简短名称:

var states = {
   "AL" : {
       "longname" : "Alabama",
       "lawOne" : "Text for Law 1",
       "lawTwo" : "Text for Law 2",
       "lawThree" : "Text for Law 3"
   },
   "AK" : {
       "longname" : "Alaska",
       "lawOne" : "Text for Law 1",
       "lawTwo" : "Text for Law 2",
       "lawThree" : "Text for Law 3"
   }
}

for (var key in states) {
  if (states.hasOwnProperty(key)) {
    var val = states[key];
    console.log(key + ':' + val.longname);
  }
}

jsIDLE:

您可以迭代并获得如下简短名称:

var states = {
   "AL" : {
       "longname" : "Alabama",
       "lawOne" : "Text for Law 1",
       "lawTwo" : "Text for Law 2",
       "lawThree" : "Text for Law 3"
   },
   "AK" : {
       "longname" : "Alaska",
       "lawOne" : "Text for Law 1",
       "lawTwo" : "Text for Law 2",
       "lawThree" : "Text for Law 3"
   }
}

for (var key in states) {
  if (states.hasOwnProperty(key)) {
    var val = states[key];
    console.log(key + ':' + val.longname);
  }
}

JSIDLE:

这不是JSON。这是一个JavaScript对象文本。这些术语不能互换。谢谢。我已经更新了这个问题,并发布了我发现的不是JSON的答案。这是一个JavaScript对象文本。这些术语不能互换。谢谢。我已经更新了问题,并发布了我发现的答案。我相信这更符合我正在寻找的线索。唯一的问题是State缩写在本质上是动态的,我需要弄清楚如何动态地输入数据。不过,这要由我来决定。我很感激你的领先!我相信这更符合我所期待的方向。唯一的问题是State缩写在本质上是动态的,我需要弄清楚如何动态地输入数据。不过,这要由我来决定。我很感激你的领先!这让我了解了数组中的一系列状态,但我如何才能专注于一个(动态)状态并从给定状态中获取值?这让我了解了数组中的一系列状态,但如何才能专注于一个(动态)状态并从给定状态中获取值?