Java:将包含字符串数组的字符串转换为字符串数组[已关闭]

z5btuh9x  于 2023-01-24  发布在  Java
关注(0)|答案(2)|浏览(216)

**已关闭。**此问题需要debugging details。当前不接受答案。

编辑问题以包含desired behavior, a specific problem or error, and the shortest code necessary to reproduce the problem。这将有助于其他人回答问题。
7小时前关闭。
Improve this question
我有一个Web服务,它用["BOX", "BOX", "PALLET"]的主体响应ResponseEntity<String[]>
然而,当我执行responseEntity.getBody()时,我得到的是"["BOX", "BOX", "PALLET"]",它不是数组。
这是我收到的ResponseEntity,您可以看到它的body

有没有一种方法可以把它转换成字符串数组(也就是原始的Web服务响应),比如["BOX", "BOX", "PALLET"]?我想我可以尝试删除第一个和最后一个双引号,但是现在我尽量避免使用它。
先谢了!

2vuwiymt

2vuwiymt1#

如果有Jackson's ObjectMapper可用,解析编码为JSON字符串数组的数组就很简单:

final String body = "[\"value1\", \"value2\"]";
final String[] array = objectMapper.readValue(body, String[].class);
Arrays.equals(array, new[]{"value1", "value2"}); // == true

但是如果你有一个ResponseEntity<T>,那么getBody将返回T,这意味着在你的例子中,它已经应该返回一个字符串数组了。

u2nhd7ah

u2nhd7ah2#

首先,我们可以使用String类的substring-方法来移除String ["BOX", "BOX", "PALLET"]的左右方括号,然后,我们可以应用string.split(","),它将返回所需的String数组。

相关问题