zoukankan      html  css  js  c++  java
  • Unexpected token o in JSON at position 1 报错原因

    Unexpected token o in JSON at position 1 报错原因

    一、总结

    一句话总结:

    解决方案:就是去掉JSON.parse()这一层转换
    报错原因:因为你要转换的数据本来就是object,JSON.parse()这个方法是把一个字符串解析出json对象,你再转换就会报错;

    1、遇错原因:vue的data中question_list_box:JSON.parse('{!! json_encode($question_list_box !!}'),如何解决?

    可以php中json_encode()之后直接给页面的window对象,这样会直接转成json对象,这样可以不必使用JSON.parse()函数

    2、JSON.parse()作用?

    JSON.parse()用于从一个字符串中解析出json对象

    二、Unexpected token o in JSON at position 1 报错原因

    转自或参考:Unexpected token o in JSON at position 1 报错原因
    https://blog.csdn.net/wxl1555/article/details/79184076


    写在前面的话

    这个问题在之前做项目时碰到过一次,当时按照网上的做法,去掉JSON.parse()这一层转换后就没有这个报错了,数据也能正常使用,就没多想,也没深究是什么原因。

    可是这次又碰到了,所以这次必须要弄明白原因。

    先看看它的作用

    JSON.parse()用于从一个字符串中解析出json对象,如

    var str = '{"name":"LeonWu","age":"18"}'
    
    JSON.parse(str);
    
    //结果为一个Object
    // age: "18";
    // name: "LeonWu";
    

    JSON.stringify()用于从一个对象解析出字符串,如

    var a = {a:1,b:2,c:"LeonWu"};
     
     JSON.stringify(a);
     
     //结果为 "{"a":1,"b":2,"c":"LeonWu"}"
     
    

    背后的原因

    报错的原因

    因为你要转换的数据本来就是object,JSON.parse()这个方法是把一个字符串解析出json对象,你再转换就会报错;

    为什么会有这样的错误

    因为把Object作为参数传到JSON.parse()里时,首先会默利用toString()方法转为string,结果为"[object Object]"。

    JSON.parse()将第一个字符’['理解为数组的开始,第二字符’o’不知道怎么处理;所以就抛出了上面的错误信息 Unexpected token o in JSON at position 1。


    解决方案就是去掉JSON.parse()这一层转换,因为你需要转换的数据本来就是一个json对象了,不需要在转换了。

     
  • 相关阅读:
    CMD 常用命令
    CMD 删除脚本
    HAproxy 介绍
    HAproxy 配置参数详解
    HAproxy 源码包安装
    lvs keepalived 安装配置详解【转】
    linux下负载均衡(LVS安装与配置)【转】
    CentOS 6.3下部署LVS(NAT)+keepalived实现高性能高可用负载均衡【转】
    Linux负载均衡软件LVS之二(安装篇)[转]
    Mysql + keepalived 实现双主热备读写分离【转】
  • 原文地址:https://www.cnblogs.com/Renyi-Fan/p/11682200.html
Copyright © 2011-2022 走看看