{"Name":"abc", "age":10}
などの単純なJSON文字列を対応するJSONオブジェクトに変換します(カスタムのScala "Person"などのオブジェクトではありません)。Does Scala StringをJSONオブジェクトに変換する組み込みメソッドをサポートしていますか?
複雑なJSON操作は一切行いません。文字列をJSONオブジェクトに変換するだけです。これを行う最も簡単な方法は何ですか?私はScalaを初めて使用するので、この質問が非常に基本的なものに聞こえるかどうかおifびします。
ありがとう。
注:技術的には、JSONを解析するコアScala "ネイティブ"の方法はありません。 Spray JSONやPlay JSONなどの外部のサポートされているライブラリ。
Scala 2.11現在、パーサーコンビネーターライブラリはコア言語jarに含まれていないため、プロジェクトに個別に追加する必要があります。さらに、JSONパーサーはサポートされているコミュニティで非推奨になりました。 parser-combinatorライブラリのバージョンです。このライブラリの使用はお勧めしません。
Build.sbtに次を追加することにより、必要に応じてプロジェクトに追加できます。
_libraryDependencies += "org.scala-lang.modules" %% "scala-parser-combinators" % "1.0.4"
_
ライブラリのソースコードは https://github.com/scala/scala-parser-combinators にあります。
JSON解析のためのScalaのネイティブ機能について具体的に尋ねたので、探しているパッケージはscala.utils.parsing.jsonです。次のようなものが機能するはずです。
_import scala.util.parsing.json._
val parsed = JSON.parseFull("""{"Name":"abc", "age":10}""")
_
parsed
は次の値を取ります:Some(Map(Name -> abc, age -> 10.0))
Spray JSON のようなライブラリを使用することもできます。 JSONとの間で変換するための多くの使いやすい機能を提供します。 Spray JSONを使用する場合は、次の操作を実行できます。
import spray.json._
// some code here
val json = "your json string here".parseJson
また、Json Libraryを play framework から使用できますが、スタンドアロンライブラリとしても使用できます。このライブラリは、優れているが放棄されている Jerkson プロジェクトに基づいています。これはScala超高速のラッパーJavaベースのJSONライブラリ、ジャクソン。そして、トランスフォーマー、バリデーターなど、JSONを操作するための非常に豊富で優れた文書化されたツールセットがあります。
import play.api.libs.json._
val json: JsValue = Json.parse("""{"a":1}""")
プレイせずにこのライブラリを使用するには、文字列でbuild.sbtにインストールするだけです
libraryDependencies += "com.typesafe.play" %% "play-json" % "2.3.0"
parseFull
はSome(Map)
の項を返し、parseRaw
はSome(JSONObject)
の項を返します
import scala.util.parsing.json._
val parsed = JSON.parseRaw("""{"Name":"abc", "age":10}""").getOrElse(yourDefault)
parsed
はJSONObjectです