Как опубликовать данные json в scalaj?
Я использую scalaj для отправки запроса на отправку Http
Как передать широту, длину и радиус в качестве аргументов в поле postData
val result = Http("http:xxxx/xxx/xxxxx").postData("""{"latitude":"39.6270025","longitude":"-90.1994042","radius":"0"}""").asString
Почему строка передается в """json""" таким образом?
Основываясь на документации, похоже, что функция postData принимает в качестве аргумента только массив байтов и строку.
1 ответ
Так что это сразу два вопроса. Начнем со второго.
Почему строка передается в """json""" таким образом?
Scala допускает специальный синтаксис для многострочных строковых литералов (или строк, содержащих символы новой строки, кавычки и т. Д.). Так ты можешь сделать
val s = """Welcome home!
How are you today?"""
Теперь вернемся к основному вопросу
Как передать широту, длину и радиус в качестве аргументов в поле postData?
Полагаю, вы попали в такую ситуацию:
val lat = "39.6270025"
val long = "-90.1994042"
И вы хотите передать это в postData
функция, смешанная с некоторыми другими, возможно, фиксированными строками.
Еще одна особенность, которую предоставляет Scala, - это так называемая string interpolation
. Простой пример
val name = "Mark" // output on the REPL would be: name: String = Mark
val greeting = s"Hello $name!" // output on the REPL would be: greeting: String = Hello Mark!
Итак, в вашем случае вы могли бы сделать то же самое
val result = Http("http:xxxx/xxx/xxxxx")
.postData(s"""{"latitude":$lat,"longitude":$long,"radius":"0"}""")
.asString