Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/399.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
为什么Java会在JSON响应中截断前面的内容?_Java_Json_Spring Boot - Fatal编程技术网

为什么Java会在JSON响应中截断前面的内容?

为什么Java会在JSON响应中截断前面的内容?,java,json,spring-boot,Java,Json,Spring Boot,我有一个spring rest API,它从如下所示的响应类返回JSON响应: public class myResponse { private String anyString; private boolean isBoolean; //getters and setters } 我希望JSON响应是: { "anyString" : "foo", "isBoolean" : true } 但是,每当我检查浏览器以获得响应时,我都会得到: { "anyString" : "foo",

我有一个spring rest API,它从如下所示的响应类返回JSON响应:

public class myResponse {

private String anyString;
private boolean isBoolean;

//getters and setters
}
我希望JSON响应是:

{
"anyString" : "foo",
"isBoolean" : true
}
但是,每当我检查浏览器以获得响应时,我都会得到:

{
"anyString" : "foo",
"boolean" : true
}

为什么前面的“is”被截断了?

如果您使用的是Spring Boot,那么它在内部某处使用Jackson将您的对象转换为json字符串

您可以深入研究ObjectMapper类的逻辑,但其思想是访问字段并获得结果命名


因此,对于名为“isSth”(via method object.isSth())的布尔属性,它实际上表示json的一个字段“sth”。如果您想严格地在json中设置字段的名称,请使用@JsonProperty annotation

java和javascript以及其他内容。确保标题和标签相符。最有可能的是
isBoolean
的getter,也称为
isBoolean()
。这意味着反序列化响应的任何库都会将属性名推断为“boolean”,因为这是每个JavaBeans约定的默认值。如果需要不同的行为,则需要限定属性名称。由于没有提供关于这个案例的更多信息,我无法提供更多细节。isBoolean的getter的名称和访问权限是什么(即它们是公共的)?您需要告诉我们哪个库实际执行转换。不是语言本身起作用,JSON没有内置到Java中。@JGFMK访问修饰符是isBoolean()和setIsBoolean(boolean b)