2016-03-20 19 views
0

Aşağıda bir json dizgisi var, lütfen bu json'u Scala'da bir vaka sınıfına ayırmak için koduma hangi değişikliklerin yapılması gerektiğini önerin.Scala - Yuvalanmış bir json dizisini ayrıştırma

{ 
     "boundaries": [ 
      [ 
      [ 
       -11110372.022426892, 
       4676428.402837045 
      ], 
      [ 
       -11124418.538414171, 
       4740594.245854561 
      ], 
      [ 
       -11101812.444140816, 
       4744556.315065523 
      ], 
      [ 
       -11087326.99540134, 
       4684866.726958438 
      ], 
      [ 
       -11108506.41908069, 
       4677271.949698344 
      ], 
      [ 
       -11110152.500391051, 
       4676569.01290604 
      ], 
      [ 
       -11110372.022426892, 
       4676428.402837045 
      ] 
      ] 
     ] 
     } 

Ben aşağıdaki kodu denedim ama


import org.json4s._ 
import org.json4s.JsonDSL._ 
import org.json4s.JsonAST._ 
import org.json4s.jackson.JsonMethods._ 

val jsonString = """<the string given above>""" 
val jsonAst: JValue = parse(jsonString) 

case class Boundaries(r : Array[Array[Array[Array[Double]]]]) 

Nasıl json dizeye bu durumda sınıfını ilişkilendirmek ve bu sınıftaki tüm sayısal değerleri elde etmek için doesnt iş?

cevap

1

Bu benim için çalıştı:

import org.json4s.jackson.JsonMethods._ 
import org.json4s._ 
import org.json4s.JsonDSL._ 
import org.json4s.JsonAST._ 
import org.json4s.jackson.JsonMethods._ 

implicit val formats = DefaultFormats 

case class Boundaries (boundaries: List[List[List[Double]]]) 

val jsonString = """ 
<your json> 
""" 

scala> val jsonAst: JValue = parse(jsonString) 
jsonAst: org.json4s.JsonAST.JValue = <parsed JValue> 

scala> jsonAst.extract[Boundaries] 
res0: Boundaries = Boundaries(List(List(List(-1.1110372022426892E7, 4676428.402837045), List(-1.1124418538414171E7, 4740594.245854561), List(-1.1101812444140816E7, 4744556.315065523), List(-1.108732699540134E7, 4684866.726958438), List(-1.110850641908069E7, 4677271.949698344), List(-1.1110152500391051E7, 4676569.01290604), List(-1.1110372022426892E7, 4676428.402837045)))) 
+0

son adımdan sonra tüm sayısal değerleri ayıklamak için nasıl tavsiyelerde misiniz? Örneğin, b = (jsonAst) valmetini yapıyorum [Sınırlar] ve sonra b değerlerini kullanarak sayısal değerleri nasıl çıkarırım? – Phani

+0

Tıpkı herhangi bir eleman listesiyle yaptığınız gibi? Ayrıca bu nesneyle nihayetinde ne yapmak istediğine bağlı. – Ashalynd