Play 프레임 워크 2.2.2를 사용하고 있습니다. 나는 이와 같은 json 요청을 처리하려고합니다.
[
{
"id" : "123",
"language" : "en",
"text" : "This is an example of a text",
"Metadata_IP" : "192.168.20.34",
"Metadata_date" : "2001-07-04T12:08:56.235-0700"
},
{
"id" : "124",
"language" : "en",
"text" : "Some more text here",
"Metadata_IP" : "192.168.20.31",
"Metadata_date" : "2001-07-04T12:09:56.235-0700",
"Metadata_name" : "someone"
}
]
Metadata_ 필드는 동적 필드이므로 사용자가 원하는 것을 보낼 수 있습니다 (예 : Metadata_color 등).이를 처리하는 가장 좋은 방법은 무엇입니까?
Readers를 케이스 클래스로 역 직렬화 할 수 있습니까? 어떻게 할 수 있습니까? 동적 필드는 Map [String, String]이 될 것 같은데 어떻게 독자가 이것을 구문 분석하도록해야합니까?
감사
다음과 같이 작동 할 수 있습니다.
implicit object jsObjToKeyValueSeq extends Reads[Seq[(String, String)]] {
override def reads(json: JsValue) = json match {
case js: JsObject =>
JsSuccess(js.fields.collect { case (key, JsString(value)) => key -> value })
case x => JsError(s"Unexpected json: $x")
}
}
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다