used - cómo convertir hashMap en objeto json en scala?
json windows (4)
Quiero convertir hashmap en objeto json, mi estructura hashmap es así:
def res=Action{ implicit request=>
var response=new HashMap[String,Map[String,String]]
response=//etc .......
.
.
.
Ok(write(response))
}
bt no está funcionando.
Intenta así
val data = response.map(value=> value._1 -> Json.toJson(value._2))
Ok(json.toJson(data.toMap))
Prueba esto:
Ok(Json.toJson(response.toMap))
Esto convertiría su HashMap
en un Map
que se puede escribir como json sin código adicional.
Una solución alternativa sería usar JSON4s. [https://github.com/json4s/json4s] Como ganancia adicional, te proporciona una buena DSL, la capacidad de usar Jackson o no y una excelente manera de deserializar a JSON.
scala> import org.json4s.jackson.Serialization
import org.json4s.jackson.Serialization
scala> implicit val formats = Serialization.formats(NoTypeHints)
formats: org.json4s.Formats{val dateFormat: org.json4s.DateFormat; val typeHints:org.json4s.TypeHints} = org.json4s.Serialization$$anon$1@f40c08d
scala> Serialization.write(Map("test" -> "a", "test 2" -> 2))
res1: String = {"test":"a","test 2":2}
You can try like this....
var ls: ListBuffer[(String, Map[String, String])] = ListBuffer()
val res = list1.toList.iterator
while (res.hasNext) {
ls += (("id", getMyMap().toMap))
}
println(ls);
ls.toList
ok(write(ls.toMap))
def getMyMap(): scala.collection.mutable.Map[String, String] = {
var m=scala.collection.mutable.Map("Address" -> "strt1", "Mobile" -> 98974)
m
}
Salida:
{"0":{"Address":"strt1","Mobile":"98974"}}