JSON.parseに空文字列や途中で切れたJSONを渡すと発生するエラーです。APIの空レスポンスやlocalStorageの未設定値が典型的な原因です。
JSON文字列を貼ると、JSON.parseで検証してエラー内容とヒントを表示します。データは送信されません。
const text = ""; // 空のレスポンスなど
const data = JSON.parse(text);
console.log(data.name);
const text = '{"name":"太郎","age":25}';
let data = null;
try {
data = JSON.parse(text);
} catch (e) {
console.log("JSONの解析に失敗: " + e.message);
}
if (data) {
console.log(data.name);
}
▶ 修正済みコードを実行エディタで開く
外部から来る文字列をJSON.parseするときはtry-catchで包むのが基本です。parseの前にconsole.log(text)で実際の中身を確認すると、空文字・null・HTMLエラーページなど「JSONでないもの」が入っていることに気づけます。localStorageはgetItemがnullを返すため、JSON.parse(value ?? "{}")のような初期値の工夫も有効です。