python js中通过ajax返回的数据都是undefined

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

前端:
返回的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数据也可以直接用这个代码。

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值