前端:
返回的json数据,其实从这里可以看出前端的获取json数据的方式是没有问题的,但是返回的数据似乎有点问题,一般来说应该只有一个[Object Object]

通过JSON.stringify(response)格式化后查看到的内容,发现返回的json数据格式不对,本来这是一条数据,所有信息应该被同一对花括号包围,所以问题可以认为是出在后端返回数据上。

后端:
返回的json格式数据
[{"CITY": "三门峡", "SECTOR_ID": "124672-0"}]

在调用console.log() 通过键名查看数据的时候(比如response['CITY'])却都是undefined
通过
for (var key in response)
console.log(key)
console.log(response[key])
发现返回的json数据都是单独的一条一条,而不是一整条信息。所以从这里也可以看出是后端返回的数据的问题,就慢慢排查后端吧。

二、问题解决
经过排查才发现是在后端拼接键值对的时候变量位置放置错误导致的这个问题。
修改之前:
在第二个for循环下初始化mydict就会导致将每一个单独的键值对独立作为一对json数据,但是根据我的需求应当将初始化放在第一个for循环下,相应的data.append()也要调整到放置在第一个for循环下

修改之后:

修改后返回的数据也是在同一个花括号内了。

不过这样修改会导致前端获取数据需要根据返回的json数据条数,再加上索引才能获取到数据,比如我现在获取到的是一条json数据,那我想获取到CITY键的值,就需要使用response[0].CITY,而不能直接response.CITY。
不过这样适用性更广,多条json数据也可以直接用这个代码。

本文探讨了前端获取JSON数据遇到的格式错误问题,详细分析了后端数据拼接时的常见错误,并提供了解决方案,确保数据正确传递。
248

被折叠的 条评论
为什么被折叠?



