1. ホーム
  2. json

[解決済み] Scalaで使うべきJSONライブラリは?[クローズド]

2022-07-28 17:07:50

質問

こんな感じのJSON文字列を作りたい。

[
  { 'id': 1, 'name': 'John'},
  { 'id': 2, 'name': 'Dani'}
]

val jArray = JsArray();
jArray += (("id", "1"), ("name", "John"))
jArray += (("id", "2"), ("name", "Dani"))
println(jArray.dump)

に行を追加できるようにする必要があります。 jArray に行を追加できるようにする必要があります。 jArray += ...

これに最も近いライブラリ/ソリューションは何でしょうか?

どのように解決するのですか?

残念ながら、JSONライブラリを書くことは、ScalaコミュニティのTodoリストアプリをコーディングするバージョンです。

かなり多様な代替案があります。それらを順不同に、注釈付きでリストアップします。

  1. parsing.json.JSON - 警告 このライブラリはScalaバージョン2.9.xまでしか利用できません(新しいバージョンでは削除されます)。
  2. spray-json - Sprayプロジェクトより抜粋
  3. Jerkson ± - 警告 は素晴らしいライブラリ(Java Jacksonの上に構築された)ですが、現在は放棄されています。もしこれを使うのであれば、おそらくScaldingプロジェクトの例に従って backchat.io フォーク
  4. sjson - Debasish Ghosh 著
  5. lift-json - Liftプロジェクトとは別に使用可能
  6. json4s ???? § 他の JSON ライブラリが使用できる標準的な JSON AST を作成しようとしている lift-json からの抜粋です。Jackson にバックアップされた実装が含まれています。
  7. Argonaut ???? § - Scalaz の開発者が作った Scala 用の FP 指向 JSON ライブラリ。
  8. play-json ± - スタンドアローンで利用できるようになりました。 この回答を参照してください。
  9. ディジョン - 便利で安全かつ効率的な JSON ライブラリです。 jsoniter-scala を使用しています。
  10. sonofjson - 超シンプルなAPIを目指したJSONライブラリ
  11. Jawn - Erik Osheim による、Jackson 以上の速度を目指す JSON ライブラリ
  12. Rapture JSON ± - バックエンドとして 2, 4, 5, 6, 7, 11 または Jackson を使用することができる JSON フロントエンドです。
  13. 回路 ???? - の上に構築されたArgonautのフォーク の代わりに
  14. jsoniter-scala - 超高速JSONコーデックをコンパイル時に生成するためのScalaマクロです。
  15. jackson-module-scala - のアドオンモジュールです。 ジャクソン を追加し、Scala 固有のデータ型をサポートします。
  16. ボーラー - Scalaにおける効率的なCBORとJSONの(デ)シリアライゼーション

???? = セキュリティ脆弱性は修正されていない、§ = Scalazとの統合がある、± = Jacksonとの相互運用をサポートしている。 JsonNode

スノープラウ では、json4sとJacksonバックエンドを使用しています。Argonautについても良い経験があります。