简体   繁体   中英

How do I post json data in scalaj?

I am using scalaj to make a Http post request

How can I pass lat,long and radius as arguments in the postData field

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

Why is the string passed in """json""" such a manner?

Based on the docs it looks like the postData function takes only array of bytes and string as argument.

So this is two questions at once. Let's start with the second one.

Why is the string passed in """json""" such a manner?

Scala allows special syntax for multiline string literals (or strings containing newlines, quotation marks and so on). So you can do

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

Now back to the main question

How can I pass lat, long and radius as arguments in the postData field?

I suppose you are in this situation:

val lat = "39.6270025"
val long = "-90.1994042"

And you want to pass that into the postData function, mixed with some other maybe fixed strings.

Well another feature Scala gives is so-called string interpolation . Easy example

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!

So in your case you could do the same

val result = Http("http:xxxx/xxx/xxxxx")
  .postData(s"""{"latitude":$lat,"longitude":$long,"radius":"0"}""")
  .asString

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM