在JavaScript中解析JSON字符串时出现问题

在JavaScript中解析JSON字符串时出现问题,javascript,json,web-services,parsing,Javascript,Json,Web Services,Parsing,我是一名java开发人员,不熟悉javascript,有一个来自Web服务的JSON字符串需要用javascript解析 JSON字符串: { "myArrayList": [ { "myHashMap": { "firstName": "Clara", "name": "Housing and Community Development" } }, {

我是一名java开发人员,不熟悉javascript,有一个来自Web服务的JSON字符串需要用javascript解析

JSON字符串:

{
  "myArrayList": [
      {
         "myHashMap": {
               "firstName": "Clara",
               "name": "Housing and Community Development"
          }
      },
     {
         "myHashMap": {
               "firstName": "Nick",
               "name": "Housing and Community Development"
         }
     }
  ]
}
我尝试了以下方法来解析数据,但总是得到“未定义”。webservice以字符串格式检索上述文本

$.getJSON("http://localhost:7001/WS/Users?Id=35",
    function (jsonData)
    {
       for (var counter in jsonData.myArrayList) {
            alert(jsonData.myArrayList[counter]['name'])
       }
   });
但是,警报始终显示“未定义”。如果您能帮助解决此问题,我们将不胜感激。谢谢。

应该可以帮助您进行反序列化:

var obj = JSON.parse('[{"name":"John", "age":30, "city":"New York"}]');

obj[0].name
应该可以帮助您获取名称。

以下截取的部分有效:

(jsonData.myArrayList[counter]['myHashMap'])firstName


谢谢。

您可以通过arraylist[i].[harshmap]来访问它,这一行可以放在一个循环中,它将迭代地获取所有值。

此示例分解对象并映射结果数组

var-dta=
{
“myArrayList”:[
{
“myHashMap”:{
“名字”:“克拉拉”,
“名称”:“住房和社区发展”
}
},
{
“myHashMap”:{
“名字”:“尼克”,
“名称”:“住房和社区发展”
}
}
]
}
常量{myArrayList}=dta
函数解析(){
myArrayList.map(列表=>{
警报(list.myHashMap.name)
})
}

parse()
您似乎忽略了
myHashMap
属性。此外,如果顺序重要,那么中的…的
也会对数组产生问题。您最好使用
forEach
for…of
。谢谢@MarkMeyer。警报((jsonData.myArrayList[counter]['myHashMap']).firstName);成功了。有没有办法按插入顺序获取数据?是的,使用myArrayList[I].[myHarshship].[firstName],myArrayList[I].[myHarshship].[name]