Как мне опубликовать json данных в scalaj? - PullRequest
0 голосов
/ 21 января 2020

Я использую scalaj для отправки Http-запроса

Как я могу передать lat, long и radius в качестве аргументов в поле postData

val result = Http("http:xxxx/xxx/xxxxx").postData("""{"latitude":"39.6270025","longitude":"-90.1994042","radius":"0"}""").asString

Почему строка передается в " "" json "" "таким образом?

Исходя из документов, похоже, что функция postData принимает в качестве аргумента только массив байтов и строку.

1 Ответ

1 голос
/ 22 января 2020

Так что это два вопроса одновременно. Давайте начнем со второго.

Почему строка передается в "" "json" "" таким образом?

Scala допускает специальный синтаксис для многострочных строковых литералов (или строк, содержащих символы новой строки, кавычки и т. д.). Таким образом, вы можете сделать

val s = """Welcome home!
           How are you today?"""

Теперь вернемся к основному вопросу

Как передать аргументы lat, long и radius в поле 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
...