Java 将JSON序列化为Scala case类

Java 将JSON序列化为Scala case类,java,json,scala,Java,Json,Scala,我需要将JSON序列化为scala case类。这不是关于JSON序列化的问题,而是关于scala中的类映射的问题 JSON的示例: { “id”:98433, “姓名”:“圣克鲁斯·布朗森”, “供应商”:{ “id”:344, “名称”:“圣克鲁斯” }, “类别”:{ “id”:132, “名称”:“自行车” }, “注释”:“最佳下坡循环”, “说明”:“富文本在此”, “分类”:{ “id”:12, “名称”:“138个周期” }, “财产”:[{ “id”:84436, “集团”:{

我需要将JSON序列化为scala case类。这不是关于JSON序列化的问题,而是关于scala中的类映射的问题

JSON的示例:

{
“id”:98433,
“姓名”:“圣克鲁斯·布朗森”,
“供应商”:{
“id”:344,
“名称”:“圣克鲁斯”
},
“类别”:{
“id”:132,
“名称”:“自行车”
},
“注释”:“最佳下坡循环”,
“说明”:“富文本在此”,
“分类”:{
“id”:12,
“名称”:“138个周期”
},
“财产”:[{
“id”:84436,
“集团”:{
“id”:19433,
“名称”:“暂停”
},
“名称”:“叉转”,
“说明”:“叉形转弯定义自行车悬架”,
“值”:“129mm”
}, {
“id”:84436,
“集团”:{
“id”:19433,
“名称”:“暂停”
},
“名称”:“叉转”,
“说明”:“叉形转弯定义自行车悬架”,
“值”:“129mm”
}, {
“id”:84436,
“集团”:{
“id”:19433,
“名称”:“暂停”
},
“名称”:“叉转”,
“说明”:“叉形转弯定义自行车悬架”,
“值”:“129mm”
}, {
“id”:84436,
“集团”:{
“id”:19433,
“名称”:“暂停”
},
“名称”:“叉转”,
“说明”:“叉形转弯定义自行车悬架”,
“值”:“129mm”
}],
“isGroup”:正确
}
我知道如何为顶级地图构建案例类:

case class ProductDocument(id: Long, name: String, annotation: String, description: String, isGroup: String) extends DocumentMap {
    ...
}
但我不知道如何为供应商、类别、属性等构建价值


我想将此JSON映射定义为一个类文件。

对于scala JSON映射,您至少有两个选项:

-它最初为Mongo提供了类似ORM的功能,但也只适用于JSON序列化(免责声明:我在Novus工作)

-见“序列化”一节


好消息是,因为Scala案例类的结构已经被很好地理解,所以通常不必在JSON字段和案例类字段之间定义“映射”。正如Arne Claassen所描绘的那样,您只需编写与JSON文档的结构/字段相匹配的case类。

对于scala JSON映射,您至少有两个选项:

-它最初为Mongo提供了类似ORM的功能,但也只适用于JSON序列化(免责声明:我在Novus工作)

-见“序列化”一节


好消息是,因为Scala案例类的结构已经被很好地理解,所以通常不必在JSON字段和案例类字段之间定义“映射”。正如Arne Claassen所描绘的那样,您只需编写与JSON文档的结构/字段相匹配的case类。

对于scala JSON映射,您至少有两个选项:

-它最初为Mongo提供了类似ORM的功能,但也只适用于JSON序列化(免责声明:我在Novus工作)

-见“序列化”一节


好消息是,因为Scala案例类的结构已经被很好地理解,所以通常不必在JSON字段和案例类字段之间定义“映射”。正如Arne Claassen所描绘的那样,您只需编写与JSON文档的结构/字段相匹配的case类。

对于scala JSON映射,您至少有两个选项:

-它最初为Mongo提供了类似ORM的功能,但也只适用于JSON序列化(免责声明:我在Novus工作)

-见“序列化”一节


好消息是,因为Scala案例类的结构已经被很好地理解,所以通常不必在JSON字段和案例类字段之间定义“映射”。正如Arne Claassen所描绘的那样,您只需编写与JSON文档的结构/字段相匹配的case类。

每个嵌套的JSON对象都应定义为自己的case类,例如:

case class Vendor(id: Long, name: String)
case class ProductDocument(id: Long, ..., vendor: Vendor)
属性
将成为
属性
案例类的
列表

case class Property(id: Long, group: PropertyGroup, name: String, description: String, value: String)
case class PropertyGroup(id: Long, name: String)
case class ProductDocument(id: Long, ..., properties: List[Property])

这假设您正在使用序列化。

每个嵌套的json对象都应该定义为它们自己的case类,例如:

case class Vendor(id: Long, name: String)
case class ProductDocument(id: Long, ..., vendor: Vendor)
属性
将成为
属性
案例类的
列表

case class Property(id: Long, group: PropertyGroup, name: String, description: String, value: String)
case class PropertyGroup(id: Long, name: String)
case class ProductDocument(id: Long, ..., properties: List[Property])

这假设您正在使用序列化。

每个嵌套的json对象都应该定义为它们自己的case类,例如:

case class Vendor(id: Long, name: String)
case class ProductDocument(id: Long, ..., vendor: Vendor)
属性
将成为
属性
案例类的
列表

case class Property(id: Long, group: PropertyGroup, name: String, description: String, value: String)
case class PropertyGroup(id: Long, name: String)
case class ProductDocument(id: Long, ..., properties: List[Property])

这假设您正在使用序列化。

每个嵌套的json对象都应该定义为它们自己的case类,例如:

case class Vendor(id: Long, name: String)
case class ProductDocument(id: Long, ..., vendor: Vendor)
属性
将成为
属性
案例类的
列表

case class Property(id: Long, group: PropertyGroup, name: String, description: String, value: String)
case class PropertyGroup(id: Long, name: String)
case class ProductDocument(id: Long, ..., properties: List[Property])
这假定您正在使用序列化