5

Is it possible to add new field to JsObject?

val jsonObj = Json.obj()
jsonObj.put("field" -> 100) <==== Somthing like this

I have a lot of methods that add new fields. How can I dynamically create JsObject?

Michał Jurczuk
  • 3,468
  • 4
  • 28
  • 53

1 Answers1

11

Yes, you can add a new field using the "+" method. Note that the object is immutable, so this will create a new copy of the JsObject with the added field:

val obj = Json.obj()
// obj - {}
val newObj = obj + ("name" -> JsString("Kip"))
// newObj - {"name":"Kip"}
kipsigman
  • 286
  • 2
  • 4
  • You might be tempted to try, after looking at the source of JsObject + val newObj = obj + ("name", JsString("Kip")) But if you run -Xlint in the compiler option, you will get this warning: Adapting argument list by creating a 2-tuple: this may not be what you want. – Jack Chi Apr 02 '14 at 18:36