如何在java中从头到尾清理空间?

qyswt5oh  于 2021-08-20  发布在  Java
关注(0)|答案(2)|浏览(305)

此问题已在此处找到答案

如何在java中正确修剪字符串中的空格((6个答案)
一小时前关门了。
我正在用rest学习Java8,从我的微服务调用rest服务,我收到一个json对象。之后,我需要从开始和结束删除空间,然后将其发送到前端。
例如,我有一个模型对象:

public class User {
    @JsonProperty("name")
    private String name = null;
    @JsonProperty("education")
    private String education = null;
    @JsonProperty("phone")
    private String phone = null;
    @JsonProperty("age")
    private String age = null;

    public User() {
    }

    ........
}

所以我打电话给这个外部服务,我收到这样的回复:

{
    "name": "  John Book",
    "education": "   Faculty of Computers            ",
    "phone": "00448576948375           ",
    "age": "   20 "
}

现在,我需要清理每个字段从头到尾的所有空间,并以以下方式进行转换:

{
    "name": "John Book",
    "education": "Faculty of Computers",
    "phone": "00448576948375",
    "age": "20"
}

我如何实现这种实现?非常感谢。

ntjbwcob

ntjbwcob1#

简单使用 String#trim() 在每一个字段上都可能在这里工作。但我建议在您第一次从前端接收json时,甚至在后端持久化之前删除空白。将传入的json打包到java pojo时插入以下行:

User user = ... // marshall from JSON
user.setName(user.getName().trim());
user.setEducation(user.getEducation().trim());
user.setPhone(user.getPhone().trim());
user.setAge(user.getAge().trim());

ui不希望看到这个空白,这意味着首先将它存储在后端可能没有意义。

kmpatx3s

kmpatx3s2#

您可以按如下方式修剪接收到的json的值:
我们可以将响应json作为字符串接收,然后将其传递给以下方法,在该方法中,您将接收json响应并返回对象以供进一步使用,前提是json中没有额外的引号:

private User getTrimmedResponse(String jsonResponse) throws IOException {
        jsonResponse.replace("\"[ ]{1,}","\"");
        jsonResponse.replace("[ ]{1,}\"","\"");
        return objectMapper.readValue(
            objectMapper.readTree(jsonResponse).toString(),
            User.class); }

这里的objectmapper只不过是com.fasterxml.jackson.databind.objectmapper。有关详细用法,请参见objectmapper教程。希望有帮助。

相关问题