【问题标题】:Preserve the order of keys when using Reflect.fields() in haxe?在 haxe 中使用 Reflect.fields() 时保留键的顺序?
【发布时间】:2021-04-14 03:23:44
【问题描述】:

我正在使用Reflect.fields() 将我的 Json 中的项目解析为一个对象。

var test = haxe.Json.parse('{
    "a": [
        "value"
    ],
    "b": [
        "value"
    ],
    "c": [
        "value"
    ],
    "d": [
        "value"
    ]
}');

Sys.println(Reflect.fields(test));

但是上面打印出来的是:[d,c,a,b]。有没有办法保留定义键的顺序?

【问题讨论】:

    标签: json haxe jsonparser


    【解决方案1】:

    要添加到 Chii 的答案,您不必必须编写自己的 JSON 解析器 - 您可以使用 standard library parser 并向其中添加所需的逻辑 - 例如我之前让它将键顺序存储在一个单独的对象字段中。

    【讨论】:

      【解决方案2】:

      我不相信标准库有办法做到这一点 - 对象中 JSON 键的顺序没有定义。

      如果您编写自己的 json 解析器(最好是 SAX 解析器),您可以自己跟踪输入中的键顺序。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2015-11-02
        • 1970-01-01
        • 1970-01-01
        • 2011-05-20
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多