You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

React Native中JSON.parse后对象键仍为字符串的格式转换问题

解决JS对象坐标键转换及控制台显示问题

核心问题说明

  • 你误用了JSON.parse:它的参数必须是JSON格式的字符串,直接传入对象会被隐式转为"[object Object]",这属于非法JSON格式,你的代码实际会触发错误(若你是先JSON.stringify再parse,这种操作也完全没必要)。
  • 控制台显示的带引号键,只是控制台将对象转为JSON字符串后的显示形式,实际你的对象键已经是不带引号的标识符格式——JS中对象的标识符键(如lat)本身就不需要引号,控制台的显示不代表实际对象结构。

正确转换代码

无需任何JSON相关操作,直接遍历数组映射字段即可:

const route = [{"latitude": 51.6788, "longitude": -0.1689}, {"latitude": 51.8753, "longitude": -0.1693}];
const formattedRoute = route.map(item => ({
  lat: item.latitude,
  lng: item.longitude
}));

console.log(formattedRoute);

控制台显示差异原因

不同环境的控制台输出逻辑不同:

  • MDN fiddle控制台直接显示JS对象的字面量格式,因此键不带引号;
  • React Native/VSCode调试控制台会将对象序列化为JSON字符串后显示,所以键带引号,但这只是显示方式,实际对象结构完全符合API要求,可直接传入使用。

验证实际结构的方法

你可以通过以下代码确认对象键的实际格式:

console.log(Object.keys(formattedRoute[0])); // 输出 ["lat", "lng"],说明键本身是不带引号的字符串标识符

内容的提问来源于stack exchange,提问作者Maple845

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.23 23:27:08