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

保存到localStorage报SyntaxError: Unexpected token u in JSON at position 0

报错原因
  • 错误SyntaxError: Unexpected token u in JSON at position 0的本质是JSON.parse()接收到的入参为undefined:undefined转为字符串后首字符为u,不符合JSON格式要求,触发解析失败。
  • 定位到addNewPlace方法内的代码:this.placeList=(JSON.parse(localStorage["storedData"])); 这里直接读取原生localStorage的storedData字段,没有添加兜底逻辑。当浏览器localStorage中不存在该字段时,返回值为undefined,直接传入JSON.parse就会抛出该错误。
  • 你在初始化placeList时已经做了localStorage["storedData"] || '[]'的兜底处理,但新增地点的方法里遗漏了该逻辑,新用户/清除过浏览器缓存的用户首次操作就会触发问题。
解决方案

直接修复(立即生效)

修改addNewPlace方法中的解析逻辑,添加和初始化一致的兜底规则:

// 修改前
this.placeList=(JSON.parse(localStorage["storedData"]));
// 修改后
this.placeList = JSON.parse(localStorage["storedData"] || '[]');

优化建议(避免后续同类问题)

  • 统一使用你已经注入的LocalStorageService做存储读写,不要混用原生localStorage操作,避免逻辑不一致。可以调整为:
this.placeList = this.localStorageAs.get("storedData") || [];
  • 可以额外添加数组类型校验,防止极端情况push报错:
if (!Array.isArray(this.placeList)) {
  this.placeList = [];
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 07:36:04