2016-06-23 1 views
2
は現在、これは私がリスト[FriendsModel] friendList呼ば

JsonArrayはScalaで

にfriendsModelを追加する基本的にケースクラス

case class FriendsModel(uid: Option[String]) 
object FriendsModel { 
    implicit val paramsWrite = Json.writes[FriendsModel] 
    implicit val paramsRead = Json.reads[FriendsModel] 
} 

を作成することによって達成可能

{ 
    "friends": [438737, 
     12345, 
     32153, 
     53243 
    ] 
} 

を得ることができるものである

とすれば、ちょうどOk(Json.toJson(friendList))

変数を "friends"として挿入すると、私のJsonのリターンは次のようになります。

{ 
    "123654": [438737, 
     12345, 
     32153, 
     53243 
    ] 
} 

ここで、123654はmyuseridです。

+0

を取得します、Json.toJson(友人)はplay.api.libs.json.JsValue = [{"uid": "12"}、{"uid": "13"}、{"uid": "14"}を返します。 、あなたはあなたが言及した出力をどのように得ているのかを説明できますか? – Adi

+0

申し訳ありません、実際には 'case class FriendsModel(uid:Option [MyCustomModel]) – kenlz

答えて

6

私は、データをカプセル化するケースクラスを作成します。

case class User(uid: String, friends: Seq[FriendsModel]) 

と、このタイプのためにJSONライターを作成:

object User { 
    implicit val writer: Writes[User] = Writes { user => 
    Json.obj(
     user.uid -> user.friends 
    ) 
    } 
} 

これはあなたのコードによると、あなたに{ "123654": [438737,...] }

+0

でした。フィールド名を取り除くたびに、この回答に記載されているカスタムライターを実装する必要があります。 – Daniel

+0

ありがとう!これは結果を確認しました! – kenlz