【问题标题】:scala lift json: pattern match on unknown data?scala lift json:未知数据的模式匹配?
【发布时间】:2011-08-23 08:46:58
【问题描述】:

我有一些我无法更改的奇怪 json,我希望使用它来解析它 电梯中的 JsonParsen。

一个典型的json是这样的:

    {"name":"xxx",  "data":{
        "data_123456":{"id":"Hello"},
        "data_789901":{"id":"Hello"},
        "data_987654":{"id":"Hello"},  
}}

问题是数据的键是未知的(data_xxxxx,其中 xx:s 未知)。 这是一个糟糕的 json,但我必须忍受它。

我应该如何在 scala 中设置案例类才能构建适当的 当这里的键是未知的,但结构是已知的?

【问题讨论】:

    标签: json scala pattern-matching lift case-class


    【解决方案1】:

    您可以使用 Map,每个值也可以是 JValue,表示未解析的 JSON。示例:

    case class Id(id: String)
    case class Data(name: JValue, data: Map[String, Id])
    

    然后:

    json.extract[Data]
    res0: Data(JString(xxx),Map(data_123456 -> Id(Hello), data_789901 -> Id(Hello), data_987654 -> Id(Hello)))
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-05-17
      • 2021-12-17
      • 1970-01-01
      • 2017-07-15
      • 2012-10-31
      • 2014-09-30
      • 1970-01-01
      相关资源
      最近更新 更多