Scala

2016-04-06 30 views
6

'da üç düzeyli eşlemelerden iç içe nesne oluşturulamıyor İşte benim varlıklarım.Scala

case class Entity(id: Long, name: String) 

/** 
* entityId is the FK of Entity Table PK 
*/ 
case class Parameter(id: Long, entityId: Long, type: Long, name: String) 

//type => 1 = Input, 2 = Output 

/** 
* parameterId and sourceParameterId are the FK of Parameter Table PK 
*/ 
case class Source(id: Long, parameterId: Long, sourceParameterId: Long) 

Örnek veriler: Ben this link denedim ama öz referans varlıkları olmadığı için, elde etmede başarısız

[ 
    { 
     "id": 1, 
     "name": "Agriculture", 
     "item": [ 
      { 
       "id": 2, 
       "name": "Factory", 
       "item": [ 
        { 
         "id": 3, 
         "name": "Customer", 
         "item": [] 
        } 
       ] 
      } 
     ] 
    }, 
    { 
     "id": 4, 
     "name": "Institute", 
     "item": [ 
      { 
       "id": 5, 
       "name": "Student", 
       "item": [] 
      } 
     ] 
    } 
] 

Entity(1,"Agriculture") 
Entity(2,"Factory") 
Entity(3,"Customer") 
Entity(4,"Institute") 
Entity(5,"Student") 

Parameter(1,1,2,"Raw Food") 
Parameter(2,2,1,"Raw Food") 
Parameter(3,2,2,"Packed Food") 
Parameter(4,3,1,"Packed Food") 
Parameter(5,4,2,"Knowledge") 
Parameter(6,5,1,"Knowledge") 

Source(1,2,1) 
Source(2,4,3) 
Source(3,6,5) 

İstenilen Çıktı.

Şimdiden teşekkürler.

+0

Bunu deneyin: http://alvinalexander.com/scala/how-to-create-json-strings-from-scala-objects –

+0

Tam kod örneğini gösterebilir misiniz? Vaka sınıflarınız ve aşağıdaki JSON parçası arasında henüz bir ilişki göremiyorum. – Roman

+0

@Roman, Soru sınıfının tepesindeki yorumlarla ilgili soruları ilk defa güncelledim – Jet

cevap

0

Eğer

case class Entity(id: Long, name: String) 
case class Parameter(id: Long, entity: Entity, type: Long, name: String) 
case class Source(id: Long, parameter: Parameter, sourceParameterId: Long) 

, play-json böyle bir şey için sınıfları değiştirirseniz (o Play dışındaki kullanılabilir) mükemmel çalışıyor.