2016-08-09 5 views
3

Я хотел бы сделать что-то вроде этого:Перевод дополнительного json-поля в опцию с помощью Play Json?

(request.body \ "optional-integer").toOption[Int] 

, что если нет optional-integer поля в теле, я буду получать None, а в противном случае целое значение. Есть ли какой-нибудь идиоматический способ?

+0

Пожалуйста, вы можете объяснить с прецедентом? Я не могу тебя достать. :) –

+3

Вместо 'toOption [Int]' просто поместите 'asOpt [Int]'. – Mikesname

ответ

0

Как @Mikesname's comment сказал

(request.body \ "optional-integer").asOpt[Int] 

должен делать эту работу. Это использует JsValue. asOpt(), который

пытается преобразовать узел в Т.

Сравнить the JSON basics manual, part Using JsValue.as/asOpt

val nameOption = (json \ "name").asOpt[String] 
// Some("Watership Down") 

val bogusOption = (json \ "bogus").asOpt[String] 
// None 
Смежные вопросы