“[object Object]“ is not valid JSON 的解决方案

打印 上一主题 下一主题

主题 1713|帖子 1713|积分 5139

1 错误形貌:

使用 JSON.parse()时,常常会提示:"[object Object]" is not valid JSON 。

有2种解决方案:
1.1 不需要使用JSON.parse()方法

JSON.parse()的工作是将 JSON 转换回 JavaScript,所以如果从服务器响应中获取 JSON,但在到达您的代码之前已经转换为 JavaScript了,就不需要 JSON.parse()!
  1. // ERROR! 已经是javascript
  2. const obj = JSON.parse({ name: "my object" });
  3. // Error: "[object Object]" is not valid JSON
  4. // WORKS!
  5. const obj = { name: "my object" };
复制代码
1.2 先使用 JSON.stringify()将对象转换为 JSON

JSON.parse()将 JSON 转换为 JavaScript
JSON.stringify() 将 JavaScript 转换为 JSON
二者配套使用。
  1. //配套使用
  2. //1.放入时,使用JSON.stringify
  3. cookie.set('yyt_ucenter',JSON.stringify(this.loginInfo))
  4. //2.取出时,使用JSON.parse
  5. var ucernterStr = JSON.parse(cookie.get('yyt_ucenter'))
复制代码
2 故障清除
2.1 检查传递给 JSON.parse()的内容是否为字符串
  1. // 1、错误场景!
  2. const result = { name: "my object" };
  3. console.log(typeof result);
  4. // 如果返回"object",调用JSON.parse会报 "[object Object]" is not valid JSON
  5. const obj = JSON.parse(result);
  6. // Error: "[object Object]" is not valid JSON
  7. // 2、正确场景!
  8. const result = `{ "name": "my object" }`;
  9. console.log(typeof result);
  10. // "string" 类型,可以正常调用JSON.parse()
  11. const obj = JSON.parse(result);
复制代码
2.2 检查字符串是否有效 JSON
如果您传递的字符串不是有效的 JSON,则调用JSON.parse()时,更有可能收到如下错误,如下所示:
  1. const result = "{ dushky }";
  2. console.log(typeof result);
  3. // "string" ✅
  4. const obj = JSON.parse(result); // ❌
  5. // Error: Expected property name or '}' in JSON at position 2
复制代码
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

张春

论坛元老
这个人很懒什么都没写!
快速回复 返回顶部 返回列表