gpt4 book ai didi

java - 在 spring-boot 2 中使用 gson 时返回 null

转载 作者:行者123 更新时间:2023-12-02 09:08:37 24 4
gpt4 key购买 nike

Spring Boot 2

在 build.gradle 中:

plugins {
id 'org.springframework.boot' version '2.2.2.RELEASE'
id 'io.spring.dependency-management' version '1.0.8.RELEASE'
id 'war' // to use JSP
}

group = 'ru.otus.sd'
version = '0.0.1'
sourceCompatibility = '1.8'

repositories {
mavenCentral()
}

dependencies {
implementation 'org.springframework.boot:spring-boot-starter'
implementation 'org.springframework.boot:spring-boot-starter-web'
implementation 'org.apache.tomcat.embed:tomcat-embed-jasper:9.0.30'
implementation 'com.google.code.gson:gson:2.7'
implementation 'javax.servlet:jstl:1.2'

testImplementation('org.springframework.boot:spring-boot-starter-test') {
exclude group: 'org.junit.vintage', module: 'junit-vintage-engine'
}
}

test {
useJUnitPlatform()
}

在 application.yml 中:

server:
port: 8090

spring:
http:
converters:
preferred-json-mapper: gson
mvc:
view:
prefix: /WEB-INF/jsp/
suffix: .jsp

这是我的 Controller :

import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;

import java.util.Collections;
import java.util.List;

@RestController
public class UserController {

@GetMapping("/users")
public List<User> getAllUsers() {
return Collections.singletonList(new User() {{
setId(1);
setName("Peter");
}});
}
}

这里的模型:

public class User {
private long id;
private String name;

public long getId() {
return id;
}

public void setId(long id) {
this.id = id;
}

public String getName() {
return name;
}

public void setName(String name) {
this.name = name;
}

@Override
public String toString() {
return "\nUser{" +
"id = " + id +
", name = '" + name + '\'' +
'}';
}
}

但是当尝试打开http://localhost:8090/users

我明白

[
null
]

为什么不返回这个:

[
{
"id": 1,
"name": "Peter"
}
]

最佳答案

尝试使响应对象变得老式。创建新的数组列表,创建新的User,设置其id,设置其名称,将其添加到列表并返回列表

关于java - 在 spring-boot 2 中使用 gson 时返回 null,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59591318/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com