2014-08-28 65 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編輯用戶)你會看到訂單。

相關問題