2013-11-11 5 views
0

Я использую Finatra. Если я отправляю данные POST из рода application/x-www-form-urlencoded; charset=UTF-8, где данные из родаScala/Java HTTP-анализ данных в формате POST форматно-кодированных массивов

options[0][name]:option1 
options[0][value]:1 
options[1][name]:option2 
options[1][value]:2 

, что это хороший способ получить List из (name, value) на сервере?

ответ

0

Это может быть улучшено, но должно выполнить эту работу. Преобразуйте params в список кортежей, т.е. Список [Tuple [String, String]]. Затем выполните итерацию по параметрам, соответствующим случаю имени параметра, и установите значение.

(request.params.toList) => Future[ResponseBuilder] { 
    var option1: String = null 
    var option2: String = null 
    for(param <- value) { 
    param._1 match { 
     case "option1" => option1 = param._2 
     case "option2" => option2 = param._2 
     case _ => { } 
    } 
    } 
    render.body("some message").toFuture