2

使用带有 Play Framework 的 FlexJSON 2.1 时如何使用自定义顺序?现在我有:

public String toJsonString() {
    // Include id & name, exclude all others.
    JSONSerializer ser = new JSONSerializer().include(
           "id",
           "firstName",
           "lastName",
           "email",
           "authToken",
           "dob",
           "home_zip",
           "gender",
    ).exclude("*").prettyPrint(true);
   return ser.serialize(this);
 }

它按字母顺序打印出来。

我找到了这个SO 帖子,但我没有任何定义为 @XMLRootElement 的类。如何告诉 FlexJSON 使用自定义排序?

4

1 回答 1

2

顺序仅来自数据结构本身。采用顺序的数据结构(即 List、TreeSet、TreeMap)将具有顺序。不保证对象中的字段或 HashMap 顺序。归根结底,除了自然顺序之外,没有明确强加于事物的顺序。如果需要,您可以尝试覆盖默认的序列化 Transformers 以强制执行顺序。您可以从 ObjectTransformer 和 MapTransformer 的子类化开始,并尝试强加一个命令。

排序 JSON 数据结构似乎很奇怪,因为 javascript 中对象内的字段也没有顺序。我无法想象为什么这样做很重要。

于 2013-06-10T01:29:33.373 回答