记录 JSONObject.parseObject json对象转换 对象字段为null

1.业务背景

        使用websocket 接收消息都是String类型,没办法自定义实体类接收,所以接发都必须将json 转 对象 对象转 json。

        这是我最开始的实体类,也就是转换的类型

package com.trinity.system.domain;

import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.NonNull;

import javax.validation.constraints.NotBlank;
import java.io.Serializable;

/**
 * <p>全文检索参数<p>
 *
 * @author Tony
 * @date 2021-04-03
 */
@Data
public class FullSearchParam implements Serializable {

    /**
     * 数据源类别
     */
    private Integer datasourceCategory;


    /**
     * 数据源类型
     */
    private String datasourceType;


    /**
     * 文件大小 10-20
     */
    private String fileSize;

    /**
     * 文件单位
     */
    private String fileUnit;

    /**
     * 时间范围 2000-03-01 10:11 - 2000-04-01 20:11 创建的文件
     */
    private String timeScore;


    /**
     * 检索内容
     */
    @NotBlank(message = "检索内容不能为空")
    private String searchContext;


    /**
     * 开始查询 / 停止查询
     */
    @NonNull
    private Integer status;

}

       websocket 前端还没完成开发,我使用postman 测试

 

         刚开始我是按照平常发送请求的格式 ,但是socket 发送的是文本,也就是他会给加 /n,所以刚开始转换的时候是非法字符

{

    "searchContext":"index"

}

        然后采用上上面的方式去发,不报错了。开心

        结果运行到下面抛出异常。之前也是用过所以没出啥事,发现这个searchContext 字段的属性为null,因为的debug 走的能看见发的消息的没有丢失,但是还有 / 这种符号,我就开始漫长的调试之路,但都是没有结果,也不知道啥问题吧。

        我就想到他这种转换肯定得解析在通过反射机制创建对象挨个塞进去。但是我有data 注解是可以有 get set 方法, 我就猜想 是不是 构造器的问题 就加了  @AllArgsConstructor 注解,就解决了上面的问题

@Data
@AllArgsConstructor
public class FullSearchParam implements Serializable {

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
引用\[1\]中的代码是将一个JSON对象转换为字符串的示例。首先创建了一个JSONObject对象jsonAll,然后将其他JSONObject对象jsona和jsonb作为其属性,最后使用JSONObject.toJSONString方法将jsonAll转换为字符串jsonAllStr。\[1\] 引用\[2\]中的代码是从一个JSON字符串中获取指定字段的示例。首先使用JSON.parseObject方法将jsonAllStr转换JSONObject对象,然后通过getString方法获取jsonb字段的值getJsonb。接着再次使用JSON.parseObject方法将getJsonb转换JSONObject对象,最后通过getString方法获取listMap字段的值getJsonbb。最终使用JSON.parseArray方法将getJsonbb转换对象数组strjsonb。\[2\] 引用\[3\]中的代码是将对象数组转换JSON字符串的示例。首先创建了一个Student对象stu2,并设置其属性值。然后创建一个ArrayList对象list,并将stu1和stu2添加到list中。最后使用JSONObject.toJSONString方法将list转换为字符串listJson。\[3\] 综上所述,JSONObject.toJSONString方法是将对象转换JSON字符串的方法。可以根据需要使用不同的参数来实现不同的转换操作。 #### 引用[.reference_title] - *1* *2* *3* [JSONObjectJSON 互转](https://blog.csdn.net/u014799292/article/details/80692897)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值