从Java中的HTTP响应返回值

时间:2018-10-15 16:05:56

标签: java json spring

在使用ResponseEntity时获取值存在问题。简单来说,在进行API调用并使用

之后
ResponseEntity<String> response = *api call*
String value = response.getBody();

我得到了输出

{"value":123456}

但是,我希望使用字符串:value等于123456,而不必简​​单地将其强制执行。有关如何操作的任何想法?

2 个答案:

答案 0 :(得分:2)

请勿将字符串用作ResponseEntity对象的泛型。 像这样创建自己的对象:

public class MyResponse {
    private String value;

    public String getValue () {
        return this.value;
    }

    public void setValue (String value) {
        this.value = value;
    }
}

然后像这样使用该对象:

ResponseEntity<MyResponse> response = *api call*
String value = response.getBody().getValue();

答案 1 :(得分:0)

由于您的ResponeEntity包装了String,因此该行为是正常的。

您应该使用定义属性value的类。

假设您有一个MyClass类,定义了属性value(具有适当的getter),那么您要做的就是如下更改代码:

ResponseEntity<MyClass> response = *api call* 

String value = response.getBody().getValue();