栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

如何使用标准Scala类在Scala中解析JSON?

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

如何使用标准Scala类在Scala中解析JSON?

这是一个基于提取器的解决方案,它将进行类转换:

class CC[T] { def unapply(a:Any):Option[T] = Some(a.asInstanceOf[T]) }object M extends CC[Map[String, Any]]object L extends CC[List[Any]]object S extends CC[String]object D extends CC[Double]object B extends CC[Boolean]val jsonString =    """      {        "languages": [{ "name": "English", "is_active": true, "completeness": 2.5        }, { "name": "Latin", "is_active": false, "completeness": 0.9        }]      }    """.stripMarginval result = for {    Some(M(map)) <- List(JSON.parseFull(jsonString))    L(languages) = map("languages")    M(language) <- languages    S(name) = language("name")    B(active) = language("is_active")    D(completeness) = language("completeness")} yield {    (name, active, completeness)}assert( result == List(("English",true,2.5), ("Latin",false,0.9)))

在for循环的开始,我人为地将结果包装在一个列表中,以便在最后生成一个列表。然后在for循环的其余部分中,我将使用生成器(使用

<-
)和值定义(使用
=
)将利用unapply方法的事实。

(较旧的答案已被删除-如果您有好奇心,请查看编辑历史记录)



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/418339.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号