在scala.util.parsing.json._包的弃用面前使用什么?

Bea*_*ird 12 json scala

如何解决Scala问题?我在项目中通过JSON使用警告:

包json中的对象JSON被描述.此对象将被删除.

import scala.util.parsing.json._
JSON.parseRaw("[{'a':'b'},{'c':'d'}]")
Run Code Online (Sandbox Code Playgroud)

ton*_*edz 16

通常,这意味着一个功能已被另一个实现取代,其使用优于旧实现,这样的问题仅仅意味着OP懒得谷歌文档.对于Java语言中的库来说尤其如此,它非常严肃地对待向后兼容性(对于某些人来说它变得很痛苦).Scala生态系统在这方面并不是那么严格,升级到更新版本的语言意味着您可以获得不同的API甚至二进制不兼容性.另请参见Scala:版本之间的二进制不兼容性.这不是对Scala的评论.存在这些不兼容性的充分理由.

但是,我必须承认,该文档scala.util.parsing.json不包含任何有关此功能的推荐替代品的信息.我花了很长时间才挖掘出一些与推荐替代品的清晰陈述相似的东西.

社区中似乎有很多关于这种弃用的观点和影响的讨论.如果您有兴趣,我建议您在scala-users组中阅读此主题.

这种弃用的最引用理由似乎是性能不佳和线程安全性差.

弃用是作为此Jira问题的一部分完成的,并且在由于弃用而未完成此相关任务的结束注释中建议使用不同的解析器.

替代方案包括:

回答你的问题.这是一个警告,在实际删除此对象之前,您的代码不应中断.但是,如果在此功能中发现新的错误,则很可能不会修复它们.如果您升级到实际删除了这些软件包的较新版本的Scala,您的代码也会中断(根据文档,版本2.11.0及更高版本)


Rya*_*yan -1

Scala 标准库中的 JSON 解析器已弃用。您应该选择更强大的第三方库之一,例如 Jackson、Play-Json、json4s 等。