微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

萨克森Saxon是否提供一种方法来维护键在地图中的插入顺序?

如何解决萨克森Saxon是否提供一种方法来维护键在地图中的插入顺序?

将映射序列化为JSON时,Saxon似乎不维护键的插入顺序。虽然我知道JSON不需要这样做,但它有助于诊断并减少最终用户的困惑。

是否可以通过实现自定义序列化器来实现这一目标?还是订单会在流程的早期丢失?

解决方法

Saxon(Java / .NET版本)具有XDM映射的两个实现,即HashTrieMap和DictionaryMap,并且都不维护顺序。两者都使用散列结构来随机化插入时的位置,因此无法恢复它。同样,Saxon-JS使用不保留顺序的HashTrie结构。

我们自己为Saxon-JS生成SEF文件时遇到了这个问题。这是一种基于JSON的格式,如果属性是随机顺序,则很难读取。因此,我们实现了序列化选项saxon:property-order,该选项可让您定义输出中属性的顺序。它不能使您保持原始的输入顺序,但可以使您以对人类读者有意义的方式对输出进行排序。

就像所有Saxon扩展都符合W3C规范一样,这需要Saxon-PE或更高版本。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。