【问题标题】:FlexJSON Orders Alphabetically by DefaultFlexJSON 默认按字母顺序排列
【发布时间】:2013-06-09 19:04:52
【问题描述】:

在使用带有 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 使用自定义排序?

【问题讨论】:

    标签: java playframework flexjson


    【解决方案1】:

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

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

    【讨论】:

    • 真的是为​​了可读性和好奇心。感谢您的回答!
    • 排序在测试用例中很重要。映射各种 VM 版本和供应商,进行不同的迭代。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-03-29
    • 1970-01-01
    • 2012-12-15
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多