返回一个空的"内容"页面没有元素时的数组

时间:2017-05-26 11:10:55

标签: java spring spring-mvc spring-data hal-json

来自AbstractRepositoryRestController#entitiesToResources来源:

if (page.getContent().isEmpty()) {
    return pagedResourcesAssembler.toEmptyResource(page, domainType, baseLink);
}

当页面没有元素时,Spring Data REST会在"content"节点中放入一个包含无用信息的对象(在我看来),如:

"content": [
    {
        "relTargetType" : "my.company.ClassName",
        "collectionValue" : true,
        "value" : [ ]
    }
] 
  1. 提供该信息的想法/目的是什么?
  2. "content": []
  3. 时,有没有办法返回空数组page.getContent().isEmpty()
  4. 如果不可能,客户应如何处理这种意外的格式?
  5. 他们解析content迭代它,并将每个元素映射到某个域实体。由于它不是域实体,因此它们会失败。获取第一个元素并检查是否存在某些特定字段(例如relTargetType)看起来很脏,不是吗?

1 个答案:

答案 0 :(得分:0)

这是我尝试的东西......

import java.util.ArrayList;
import java.util.List;

import org.json.simple.JSONObject;

public class TEST {

    public static void main(String[] args) {
        String nullStr = null;
        List<String> nullListOrArray = null;
        List<String> emptyListOrArray = new ArrayList<>();

        JSONObject json = new JSONObject();
        json.put("nullStr", nullStr);
        json.put("nullListOrArray", nullListOrArray);
        json.put("emptyListOrArray", emptyListOrArray);

        System.out.println(json.toString());
    }

}

Json字符串输出:{"nullStr":null,"nullListOrArray":null,"emptyListOrArray":[]}