問題タブ [json4s]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
932 参照

android - クラスの ScalaSig が見つかりません - scala を使用した json4s + Android アプリのプロガード

json4s-native を使用して JSON にシリアル化したい非常に単純なケース クラス (Baz) があります。Proguardを使用してAndroid APKを作成する場合、これをまったく機能させることができないようです。

シリアル化すると、次の例外が発生します。

私のプロガード構成には以下が含まれます:

実際のコードに対してテスト ケースを実行すると期待どおりに動作しますが、proguard ステップの後には常にこの問題が発生します。

何か助けはありますか?

乾杯。

0 投票する
1 に答える
1440 参照

arrays - how to generate empty array in json4s?

I've 2 bits of scala code using the json4s dsl to produce json content

In the first instance, I get what I'm expecting:

but for the empty list I don't get an array. Instead I get

Notice in the first case menus is a JArray(List(Jobject and in the second it's a JObject(List()

Is this by design? this is currently for testing but I need to understand what's going on as my real world code will potentially have empty lists in a number of places and recipient is expecting an array.

0 投票する
2 に答える
593 参照

json - Json4s の日付から unixtimestamp

Json4sのラッパーを作成するには? デフォルトの json4s フォーマッタの日付がすべて SimpleDateFormat に変換されました。すべての日付フィールドを unixtime 形式に変換したい。

0 投票する
2 に答える
16508 参照

scala - [String,Any] を json4s を使用してコンパクトな json 文字列にマップする

現在、さまざまなデータ ソースからいくつかのメトリックを抽出し、それらをMap[String,Any]キーがメトリック名に対応し、値がメトリック値に対応するタイプのマップに格納しています。これは多かれ少なかれ汎用的である必要があります。つまり、値の型はプリミティブ型またはプリミティブ型のリストにすることができます。

このマップを JSON 形式の文字列にシリアル化したいので、json4sライブラリを使用しています。問題は、それが可能ではないように見え、そのための可能な解決策が見当たらないということです。次のようなものがすぐに使えると思います:)

私が見たソース コードをナビゲートするjson4sと、プリミティブ型をJValueに変換したり、 に変換したりするTraversable[A]/Map[String,A]/Option[A]ための暗黙的な変換が提供されます ( からへJValueの暗黙的な変換を使用できるという制限の下で、実際にはプリミティブ型であることを意味します)。 )。この演算子は、 から を構築する優れた方法を提供します。これは、 の単なる型エイリアスです。AJValueA~JObjectJField(String, JValue)

この場合、マップ値の型はAnyであるため、暗黙的な変換は行われず、コンパイラは次のエラーをスローします。

私が達成したいことに対する解決策はありますか?

0 投票する
1 に答える
2724 参照

json - Json4sはシリアル化中にNoneフィールドを無視します(「null」を使用する代わりに)

を使用する一般的な json シリアル化メソッドを使用していますjson4s。残念ながら、値が の場合、フィールドは無視されますNone。私の目標は、Noneフィールドを値で表すことnullです。None のカスタムシリアライザーを追加してみましたが、まだ機能していません。

上記のコードの結果:

私はこのリンクと他のいくつかを試しましたが、ケースクラスの問題を解決していません

0 投票する
3 に答える
2488 参照

scala - for-comprehension 内での `JObject(rec) <- someJArray` の意味

私はJson4sライブラリを学んでいます。

次のようなjsonフラグメントがあります。

そして、次のように、json 文字列をマップのリストに変換する Scala コードがあります。

to screenの出力は次のrecordsようになります。

List(Map(name -> John Derp, address -> Jem Street 21), Map(name -> Scala Jo, address -> in my sweet dream))

forループ内の行の意味を理解したい。たとえば、次の行の意味は何ですか。

json \ "records"がオブジェクトを生成することは理解していますが、 の左側のJArrayようにフェッチされるのはなぜですか? 構文の意味は何ですか? 変数はどこから来ますか?入力から新しいクラスをインスタンス化するということですか?JObject(rec)<-JObject(rec)recJObject(rec)JObjectrec

ところで、私は Java プログラミングの経験があるので、上記のループに相当する Java コードを教えていただけると助かります。

0 投票する
1 に答える
8044 参照

json - Scala での json の解析と操作

私が使用している REST サービスから返されたこの JSON があります。

現在、これをjson4sで解析し、「フィールド」配列を反復して、そこにあるさまざまなオブジェクトのプロパティ「値」を変更できるようにする方法を検討しています。これまでのところ、いくつかのjsonライブラリを試してみましたが、最終的にはjson4sになりました。

Json4s を使用すると、json を解析して JObject にすることができます。この JObject から、"fields" 配列を抽出してみることができます。

このように Map を抽出し、再度 JSON にレンダリングしました。私が理解できないのは、これらのフィールドをループしてプロパティの「値」を変更する方法です。

私はjson4sのドキュメントを読みましたが、Scalaとその構文の両方に非常に慣れていないため、苦労しています。

問題は、解析された JSON の結果を反復処理して、プロパティの「値」を変更するにはどうすればよいかということです。

これが私が達成したい流れです。

  1. JSON を解析して反復可能なオブジェクトにする
  2. ループして特定の「名前」を探し、それらの値 (たとえば fstname) を John から別の名前に変更します。
  3. それを解析して JSON に戻すので、更新された値を含む新しい JSON を送り返すことができます。

これがこれを行うための最良の方法であるかどうかはわかりません。入力をいただければ幸いです。おそらくこれを行うより簡単な方法があります。

よろしくお願いします。

ステファン・コンノ

0 投票する
1 に答える
4497 参照

json - Json AST のオブジェクトを json4s.replace に置き換えます

私はこのjsonを持っています。フィールドを解析してjson4sに置き換えています。jsonは次のようになります。

「フィールド」と呼ばれる 2 番目の配列は、空の文字列を実際の文字列値に置き換えたい配列です。最初にjsonをJObjectに解析し、次にJObjectを新しい値で変換することにより、json4s transformField関数でこれを行ってきました。

これで、元の解析済み json "a" を取得し、"v" のフィールドが更新された新しい JArray を取得しました。最後に、新しい値を元の JObject "a" にマージする必要があります。これを置換で試しましたが、運がありませんでした。

質問:

  1. 2 回目に出現したフィールド配列を置き換えるために replace() を取得するにはどうすればよいですか?
  2. これを行うより良い方法はありますか?提案は非常に高く評価されています。

これは、コードの実行可能なバージョン全体で、json の印刷例も含まれています: http://pastebin.com/e0xmxqFF

0 投票する
1 に答える
325 参照

json - 名前なしでjsonをデシリアライズする

私はjsonを消費するためのScala na json4sです。逆シリアル化するには、org.json4s.native.JsonMethods.parse および ExtractableJsonAstNode.extract メソッドを呼び出しています。これはjsonファイルの一部です:

名前のない属性が含まれています。属性を正常に逆シリアル化するには、ケース クラスのフィールド名は何にする必要がありますか?