2014-08-28 24 views
1

随着argonaut,我可以产生一些JSON为:如何在使用argonaut生成JSON时反转字段顺序?

def toJson(user:User) = ("id" := user.id) ->: ("name" := user.name) ->: jEmptyObject 

但它会产生JSON与逆序:

{ 
    "name": "myname", 
    "id": "123" 
} 

其实我希望它是:

{ 
    "id": "123", 
    "name": "myname" 
} 

是有没有办法做到这一点?我不想把它写成:

("name" := user.name) ->: ("id" := user.id) ->: jEmptyObject 

我想找到一种方法,把它们写在同一顺序

+2

这两个命令之间没有区别。 JSON“对象”是无序的。 – 2014-08-28 02:49:31

+0

这个json会被人眼看到,所以我想要一些“订单” – Freewind 2014-08-28 07:00:30

+1

所以,请提取“id”和“name”值并按照您希望的顺序显示。 JSON不打算成为演示文稿表单。 – 2014-08-28 21:45:57

回答

0

在编码器首先定义字段的顺序为 -

implicit def EncodeUserJson: EncodeJson[User] = EncodeJson[User]((p: User) ⇒ 
("id" := p.id) ->: 
    ("name" := p.name) ->: jEmptyObject) 

下使用,但无空间维持秩序 -

val t = PrettyParams.nospace.copy(preserveOrder = 
true).pretty(user.asJson) 

当您打印吨(这是stringifi编辑用户)你会看到订单。

相关问题