Skip to main content
 首页 » 编程设计

scala之使用 json4s 在 under_score 和 camelCase 格式之间进行选择

2024年08月30日21tuyile006

如何将带下划线的 json 映射到 case 类中的 camelCase 字段?

import org.json4s.jackson.JsonMethods.parse 
import org.json4s.DefaultFormats 
 
object Testing { 
  implicit val formats = DefaultFormats.withBigDecimal 
 
  def test = { 
    val json = parse("""{"some_field":"a value"}""") 
    json.extract[ThingDTO] 
  } 
} 
 
case class ThingDTO(someField:String) 

我得到的错误:

No usable value for someField Did not find value which can be converted into java.lang.String

请您参考如下方法:

它似乎没有记录(或者至少我在寻找它时错过了它),但现在有一个 camelizeCase您可以在解析的 Json 上使用的方法。我在源代码中偶然发现了它,用我正在使用的一些蛇形案例 Json 试了一下,瞧,得到了 Camel 键名。

因此,对于一年后遇到此问题的任何人,将 OP 的代码更改为以下内容即可:

import org.json4s._ 
import org.json4s.DefaultFormats 
import org.json4s.native.JsonMethods._ 
 
object Testing { 
  implicit val formats = DefaultFormats.withBigDecimal 
 
  def test = { 
    val json = parse("""{"some_field":"a value"}""").camelizeKeys 
    json.extract[ThingDTO] 
  } 
} 
 
case class ThingDTO(someField:String)