zoukankan      html  css  js  c++  java
  • 后台传给前端字符串为null或解析JSON字符错误——SyntaxError: JSON.parse: unterminated string literal at line 1 column 9018638 of the JSON data

    第一种情况:

    第二种情况:

     首先看看你的JSONObject或JSONArray的引用有没有Getter()和Setter()方法,这个必须要加上

    问题:
    两张表双向多对一、一对多时。响应给后台使,出现此错误
    分析: 双向关系,生成json的时候是相互调用,需要有一方忽略对方
    要完成的功能时,一方能够找到多方,多方反过来又能找到一方。所以响应给前台时F12-查看网络-找到post请求,然后分别查看参数和响应会发现,参数没有问题,而响应就会报以上错误。点击json数据进去查看就会发现很多数据,响应进入了死循环。(一方找多方,找了很多,然后反过来多方又去找一方找了很多,最后又循环去找)
    解决:
    在双向的两方的其中任何一方关联字段上配置@JsonIgnore这个配置就可以了。
    实例说明:
    单据是组合关系。也就是所谓的强聚合。(双向的一对多、多对一)。
    两者都不能抛弃另一方。所以要配置最强的级联(cascade = CascadeType.ALL),还要有孤儿删除(orphanRemoval = true)。还有:由于一对多性能差,所以一方要放弃维护关系,让多方维护(mappedBy = “一方的字段”)
    实例  

    //采购明细和采购单多对一关系
    @ManyToOne(fetch = FetchType.LAZY,optional = false)
    @JoinColumn(name = "bill_id")//表中的采购单外键
    @JsonIgnore //生成json的时候忽略这个属性
    private Purchasebill billId;

    单据采购明细:

    // 一般组合关系使用List (采购单和采购明细单是组合关系:双向多对一,一对多)
    @OneToMany(cascade = CascadeType.ALL, mappedBy = "billId", fetch = FetchType.LAZY, orphanRemoval = true)
    private List<Purchasebillitem> items = new ArrayList<Purchasebillitem>();
     

    Java半颗糖
  • 相关阅读:
    迭代器,生成器,列表推倒式
    内置函数
    递归与二分算法
    装饰器
    函数进阶
    函数
    MLP神经网络 隐含层节点数的设置】如何设置神经网络隐藏层 的神经元个数
    用CNN及MLP等方法识别minist数据集
    ubuntu 安装Pangolin 过程
    ubuntu16.04 + Kdevelop + ROS开发和创建catkin_ws工作空间
  • 原文地址:https://www.cnblogs.com/2019wxw/p/10989817.html
Copyright © 2011-2022 走看看