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

Spring中RestTemplate响应字符串转Java String数组的问题咨询

解决RestTemplate响应JSON数组转String数组的引号问题

嘿,这个问题我之前也碰到过!手动截取JSON字符串的方式确实容易踩坑——不仅会残留引号,要是哪天接口返回的元素里带了逗号(比如"C++,Java"),那split直接就崩了。给你两个靠谱的解决方案:

方法一:让RestTemplate直接解析为String数组

RestTemplate本身就支持自动解析JSON,你完全不用手动处理响应字符串,直接指定响应类型为String[].class就行:

RestTemplate tm = new RestTemplate();
String[] respArray = tm.exchange(url, HttpMethod.GET, requestEntity, String[].class).getBody();

这样返回的respArray就是干净的String数组,遍历输出的时候就是JAVA、C++这种不带引号的正常元素,一步到位!

方法二:用Jackson ObjectMapper解析已获取的响应字符串

如果因为某些原因你已经拿到了原始的JSON字符串响应,可以用Jackson的ObjectMapper来解析(Spring Boot项目默认已经包含Jackson依赖):

import com.fasterxml.jackson.databind.ObjectMapper;

// 假设你已经获取到了resp字符串
ObjectMapper objectMapper = new ObjectMapper();
String[] respArray = objectMapper.readValue(resp, String[].class);

这种方式更灵活,哪怕后续接口返回的JSON结构变复杂了,也能轻松适配,而且能正确处理各种边缘情况(比如转义字符、特殊符号)。

为什么不推荐手动处理字符串?

手动截取和分割的方式完全依赖JSON的格式细节,一旦接口返回的JSON有微小变化(比如空格、换行),你的代码就可能出错。而用专门的JSON解析工具(RestTemplate内置的或Jackson)是遵循JSON规范来处理的,可靠性高得多。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.25 06:15:04