【问题标题】:Not receiving json object after returning boolean value in Spring在 Spring 中返回布尔值后未接收到 json 对象
【发布时间】:2017-03-30 11:54:44
【问题描述】:

我不知道我做得对不对,但到目前为止它确实有效。

GetMapping 应该生成一个 json,但是如果我只给它一个布尔值而没有 Map 类型,它应该如何生成一个呢?那么它到底返回了什么?

@GetMapping(value = "/getIsTrackedHistory/{name}" , produces = "application/json")
public @ResponseBody boolean getIsTrackedHistory(@PathVariable("name") String name) {
    boolean isTracked = template.getIsTrackedHistory(name);
    return isTracked;
}

我的要求:

$http.get(localhostUrl + 'getIsTrackedHistory/' + $scope.name
.success(function (data) {
      console.log(JSON.stringify(data)); //prints just true or false, which doesn't look at all like a json object.

【问题讨论】:

    标签: angularjs json spring httprequest


    【解决方案1】:

    你在这里做的事情是绝对正确的。当您返回布尔值时,它将以 json 格式作为单个对象(作为布尔值)返回。 如果你返回一个包含更多属性的对象,那就像一个 json 格式。

    【讨论】:

    • 我认为 json 格式符合 [key:value] 的条件,那么这如何适用于我的情况?或者在我的情况下它是 [true] 并且这个“true”键没有价值?
    • 认为如果一个 api 返回一个包含 myObject:{status:boolean} 这样的值的对象,那么它返回为“status”:true,因为这里你直接返回一个布尔未定义的对象.
    【解决方案2】:

    如果你想返回 key:value 样式对象。 您必须返回地图或 pojo。

    例如

    Map resultMap = new HashMap<>();
    resultMap.put("success", true);
    return resultMap;
    

    然后你可以看到返回信息:{"success":true}

    【讨论】:

    • 这不是有点矫枉过正吗?
    猜你喜欢
    • 1970-01-01
    • 2020-06-13
    • 1970-01-01
    • 2020-05-22
    • 1970-01-01
    • 1970-01-01
    • 2019-10-09
    • 2021-08-23
    • 1970-01-01
    相关资源
    最近更新 更多