请问老师为什么自定义JSONResult对象去掉ok 属性之后,返回json对象里面仍然有ok属性

来源:2-10 自定义异常与拦截器整合返回JSON对象

慕函数4411803

2022-07-18 07:20

并且ok属性是一个boolean 类型


http://img2.mukewang.com/62d498d8000148e502780122.jpg



但是同时删除方法isOK()之后,返回对象就没有ok属性了


public Boolean isOK() {
    return this.status == 200;
}



写回答 关注

2回答

  • 慕沐8096571
    2023-10-09 18:52:54

    当一个类中定义了一个名为isok的方法,但没有定义ok成员变量时,返回的JSON中有ok值是因为在Java中,根据JavaBean规范,如果一个类中存在一个名为isOk的方法,那么它将被视为一个布尔类型的属性ok

    以下是一个示例代码:

    public class Result {    
        private String message;    
        public String getMessage() {        
            return message;
            }    
        public void setMessage(String message) {
                this.message = message;
            }    
        public boolean isOk() {        
            return true;
            }
    }

    在上述示例中,Result类中定义了一个isOk方法,但没有定义ok成员变量。当将该类实例化并转换为JSON时,JSON中会包含一个名为ok的键,并且其值为true

    以下是一个使用Gson库将Result类转换为JSON的示例代码:

     import com.google.gson.Gson;public class Main {   
     public static void main(String[] args) {        
         Result result = new Result();
         result.setMessage("Success");        
         Gson gson = new Gson();        
         String json = gson.toJson(result);
         System.out.println(json);
        }
    }

    输出结果为:

    {"ok":true,"message":"Success"}

    你可以使用类似于Gson、Jackson等库来将Java对象转换为JSON。这些库会自动根据JavaBean规范将方法转换为相应的属性。----问题回答由ChatGPT给出.


  • 旅行的癞蛤蟆
    2022-11-05 13:46:56

    你删了属性,文件没重新编译吧

SpringBoot 2.× 手把手零基础入门与进阶

适合SpringBoot初学者,带你从入门到进阶,系统掌握SpringBoot框架。

13712 学习 · 61 问题

查看课程

相似问题