在JavaScript中解析JSON字符串时出现问题
我是一名java开发人员,不熟悉javascript,有一个来自Web服务的JSON字符串需要用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" } }, {
{
"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]