FlexJSON默认按字母顺序排序

时间:2013-06-09 19:04:53

标签: java playframework flexjson

在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);
 }

它按字母顺序打印出来。

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

1 个答案:

答案 0 :(得分:2)

订单仅来自数据结构本身。使用订单的数据结构(即List,TreeSet,TreeMap)将具有订单。无法保证对象或HashMap顺序中的字段。最重要的是,除了自然顺序之外,没有明确强加于其他事物的命令。如果需要,您可以尝试覆盖默认的序列化变形金刚以强加顺序。您可以从继承ObjectTransformer和MapTransformer开始,并尝试强制执行订单。

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