【问题标题】:Scala How to convert JsonAST.JValue to a type?Scala 如何将 JsonAST.JValue 转换为类型?
【发布时间】:2017-02-20 18:30:44
【问题描述】:

我有一个 Angular 应用程序,可以像这样向服务器发送请求:

$scope.downloadPartDetails = (parts, e) ->
    req = {
      method: 'POST',
      url: '/downloads/partdetails',
      headers: {
        'Content-Type': "application/json; charset=utf-8"
      },
      data: { parts: [
        {manufacturer: "mfr1", partNumber: "part num1"},
        {manufacturer: "mfr2", partNumber: "part num2"},
        {manufacturer: "mfr3", partNumber: "part num3"}
      ] }
    }
    $http(req)

它在服务器上显示如下:

JArray(List(JObject(List(JField(manufacturer,JString(mfr1)), JField(partNumber,JString(part num1)))), JObject(List(JField(manufacturer,JString(mfr2)), JField(partNumber,JString(part num2)))), JObject(List(JField(manufacturer,JString(mfr3)), JField(partNumber,JString(part num3))))))

有没有办法将其转换为 List[Part]?

case class Part(mfr: String, pn: String)

【问题讨论】:

    标签: scala lift-json


    【解决方案1】:

    如果你在json和case类中使用相同的字段名会更容易

    case class Part(manufacturer: String, partNumber: String)
    val part: Part = jvalue.extract[Part]
    

    如果您无法更改案例类中的字段名称,则需要按照此处Deserialization of case object in Scala with JSON4S 的说明实现自定义序列化程序

    【讨论】:

      猜你喜欢
      • 2012-08-07
      • 1970-01-01
      • 2020-06-16
      • 2017-04-17
      • 1970-01-01
      • 1970-01-01
      • 2020-06-04
      • 2022-01-20
      • 2011-06-05
      相关资源
      最近更新 更多