如何在Scala中将case类转换为Json-LD?

时间:2016-11-22 18:48:39

标签: java json scala semantic-web json-ld

目前我有一个类似

的案例类
case class A(a:String, b:String, c:C,d:D)
case class C(e:String,f:String)
case class D(g:String,h:String)

当我尝试将对象A转换为Json时,使用任何普通的Json解析器(如lift-json)成功完成。

但是我的用例是,我必须创建一个JsonLD。

为此,我目前正在做的事情是: 现在,Json LD的案例类A变为:

 case class A(`contextA:a`:String, `contextA:b`:String, `contextA:c`:C,`contextA:d`:D,`@context`:ContextA)

类似地:

case class C(`contextC:e`:String,`contextC:f`:String,`@context`:ContextC)
case class D(`contextD:g`:String,`contextD:h`:String,`@context`:ContextD)

case class ContextA(contextA:String="www.a.com")
case class ContextD(contextD:String="www.d.com")
case class ContextC(contextC:String="www.c.com")

我的问题:

1.这种方法是否正确?如果没有,那么替代方案是什么?

2. Scala或Java中的任何库都可以让我的生活更轻松并自动执行此转换,因为我的case类有超过30个变量并且是嵌套的5倍。因此手动完成需要花费很多时间!

P.S。:我的主要目标是将一个简单的Case类转换为Json LD格式!

1 个答案:

答案 0 :(得分:0)

我认为如果你需要从https://github.com/google/schemaorg-java上下文中描述的Java对象生成Json + ld,这个项目可以帮助http://schema.org

对于更多一般任务和多个上下文的使用 - RDF / JSON + ld Scala库https://github.com/banana-rdf/banana-rdf可以提供帮助,但这是一种更低级的方法。并且可能无助于你的任务。

拥有像上下文这样的东西会很高兴 - > scala类生成器。但到目前为止还没有找到这样的项目。