You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何实现返回含userName的String ArrayList且响应码为200?

如何实现返回包含userName的String类型ArrayList且响应状态码为200

没问题,我来给你详细拆解这个需求的实现方案,下面以最常用的Spring Boot框架为例(这是后端开发中最普遍的场景),同时也补充原生Servlet的实现方式供你参考:

1. Spring Boot 实现方案(推荐)

1.1 准备依赖

首先确保你的Spring Boot项目引入了spring-boot-starter-web依赖,它会帮我们自动处理HTTP请求和响应的序列化/反序列化:

<!-- Maven pom.xml 中的依赖配置 -->
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-web</artifactId>
</dependency>

1.2 编写控制器接口

创建一个RestController,直接返回ArrayList<String>即可——Spring Boot默认会把这个列表序列化为JSON格式,并且默认返回200状态码,完全符合你的需求:

import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;
import java.util.ArrayList;
import java.util.List;

@RestController
public class UserNameController {

    @GetMapping("/get-usernames")
    public List<String> getUserNameList() {
        // 这里可以替换为从数据库/缓存获取真实数据的逻辑
        ArrayList<String> userNameList = new ArrayList<>();
        userNameList.add("john_doe");
        userNameList.add("jane_smith");
        userNameList.add("bob_johnson");
        
        // 直接返回列表,Spring自动处理响应
        return userNameList;
    }
}

1.3 显式指定200状态码(可选)

虽然默认就是200,但如果你想显式声明状态码(增强代码可读性),可以添加@ResponseStatus注解:

import org.springframework.http.HttpStatus;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.ResponseStatus;
import org.springframework.web.bind.annotation.RestController;
import java.util.ArrayList;
import java.util.List;

@RestController
public class UserNameController {

    @GetMapping("/get-usernames")
    @ResponseStatus(HttpStatus.OK) // 显式指定200 OK状态码
    public List<String> getUserNameList() {
        ArrayList<String> userNameList = new ArrayList<>();
        userNameList.add("john_doe");
        userNameList.add("jane_smith");
        userNameList.add("bob_johnson");
        
        return userNameList;
    }
}

1.4 验证效果

启动项目后,访问http://localhost:8080/get-usernames,你会得到类似如下的JSON响应,同时响应状态码为200:

["john_doe","jane_smith","bob_johnson"]

2. 原生Servlet 实现方案

如果你的项目没有使用Spring Boot这类框架,用原生Servlet也能轻松实现:

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.util.ArrayList;
import com.fasterxml.jackson.databind.ObjectMapper;

@WebServlet("/get-usernames")
public class UserNameServlet extends HttpServlet {
    @Override
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        // 1. 设置响应状态码为200
        response.setStatus(HttpServletResponse.SC_OK);
        // 2. 设置响应内容类型为JSON,编码为UTF-8
        response.setContentType("application/json;charset=UTF-8");
        
        // 3. 构造用户名列表
        ArrayList<String> userNameList = new ArrayList<>();
        userNameList.add("john_doe");
        userNameList.add("jane_smith");
        userNameList.add("bob_johnson");
        
        // 4. 使用Jackson将列表转为JSON并写入响应流
        ObjectMapper objectMapper = new ObjectMapper();
        objectMapper.writeValue(response.getWriter(), userNameList);
    }
}

注意:这里需要引入Jackson的依赖来实现对象到JSON的转换,Maven依赖如下:

<dependency>
    <groupId>com.fasterxml.jackson.core</groupId>
    <artifactId>jackson-databind</artifactId>
    <version>2.15.2</version>
</dependency>

内容的提问来源于stack exchange,提问作者Techguy

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.09 08:22:48