問題タブ [lift-json]

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 に答える
651 参照

scala - lift-jsonを使用したJSONとしてのMongoDBObjectID

一部のRESTAPIにBowlerフレームワークを使用しており(内部的には重い物を持ち上げるためにlift-jsonモジュールを使用しています)、次のケースクラスがあります。

このケースオブジェクトをクライアントに返すときは、_idフィールドの値を含める必要があります。ただし、_id列は、実際の値ではなく、Json出力で空のリストとして返されます。

これをどのように修正できるかについてのポインタは大歓迎です。

更新:カスタムシリアライザーを使用してみましたが、何らかの理由で呼び出されません!

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

parsing - Scala で lift-json を使用して解析された JSON から JSON をレンダリングする

これはおそらく簡単なことで、私の難しさはおそらく Scala を初めて知ったことが原因であると思われます (Scala は私のお気に入りの言語になりつつあります)。

基本的に、次のような JSON があります。

これで、この JSON を解析して、ヘッダーからデータを取得し (to および from)、バンドル内の個々のメッセージを確認できるようになりました。現時点では、これを使用しています:

それは私に与えます:

しかし、そのループでやりたいことは、各マップを取得して JSON に戻すことです。

render(m) やその他のさまざまな半ランダムなものを試して動作させようとしましたが、これまでのところサイコロはありません。私が来た最も近いものは私にこのエラーを与えます:

誰でも私を正しい方向に向けることができますか?

前もって感謝します!

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

java - lift-json を使用して、json とメタデータに基づいて型をインスタンス化する

Lift-json を使用してシリアライズされた Scala ケース クラスをデシリアライズしたいと考えています。extractOpt[A]私が抱えている問題は、以下のジェネリック メソッド メソッドを呼び出す方法がわからないことです。

のタイプは[A]メタデータに依存します。たとえば、のクラス名です[A]が、私の人生では、リフレクションを使用して呼び出しを行う方法を理解できません。extractOpt[A]C# では、リフレクションを使用して呼び出しのジェネリック型を設定するだけです。私の問題は、Java 型の消去に関係しているのではないかと心配しています。

多くのケース クラスを使用する予定なので、{metadata} -> classOf[] から何らかの手作りのマップを作成する必要がないようにしたいと考えています。関連付けられているメタデータを完全に制御できsomeStringます。

この問題が発生した理由を理解するのに役立つ場合は、イベント ソーシングを実装しており、すべての [A] タイプが永続化されたイベントになります。私にできることはありますか?

0 投票する
5 に答える
2397 参照

scala - lift-json を使用して scala で json を検証する

Lift-json を使用してケース クラスにマーシャリングする前に、json にキー/値のリストが含まれていることを検証したいと思います。データがネストされている可能性があります。

例えば:

この JSON に「name」、「age」、「address\street」の値が含まれていることを確認するにはどうすればよいですか? 他のすべてのフィールドはオプションであると想定します。

明らかな何かが欠けている場合は申し訳ありませんが、このような問題は以前に解決されていると思います。

ところで、オーダリーを試した人はいますか? https://github.com/nparry/orderly4jvm

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

scala - 理解のためのLiftJSONでの非再帰的抽出

私はLiftJSONのfor-comprehensionsを使用してJSONを解析しています。JSONは再帰的であるため、たとえば、フィールドidは各レベルに存在します。次に例を示します。

次のコード

を生成しList(1, 2, 3)ます。製品に期待していたList(1)

私のプログラムでは、これは2次計算になりますが、必要なのは線形だけです。

for-comprehensionsを使用してトップレベルのidフィールドのみに一致させることは可能ですか?

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

scala - Diff に必要な play フレームワーク ファイルがありません

scala play で lift-json ライブラリを使用しようとすると、次のエラーが発生します。存在しないシンボル。」

dependencies.yml ファイルに「- net.liftweb -> lift-json 2.9.0-1-2.4」を追加しました。このエラーの原因がわかりません。

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

json - lift-json を使用したベクトルの逆シリアル化

lift-json を使用して json 配列を scala vector に逆シリアル化するにはどうすればよいですか?

例えば:

結果は次のとおりです。

良い。しかし、この文字列を逆シリアル化しようとすると

私は例外を取得します:

net.liftweb.json.MappingException: 解析された JSON 値がクラス コンストラクターと一致しません args=List(Bar1(1), Bar2(5), Bar1(1)) arg types=scala.collection.immutable.$colon$colon コンストラクター=public test.Foo(scala.collection.immutable.Vector)

クラスFooで定義されたベクトル型ではなく、scalaリストに関連付けられたjson配列を意味します。net.liftweb.json.Serializer を拡張してカスタムシリアライザーを作成し、それをフォーマット値に含める方法があることを私は知っています。しかし、Vector に格納されているオブジェクトのタイプを復元するにはどうすればよいですか。私はこのように逆シリアル化の結果を取得したい:

Foo(Vector(Bar1(1), Bar2(5), Bar1(1)))

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

scala - lift-jsonを使用して、キーとして文字列を持たないマップをシリアル化します

lift-jsonは、キーとして文字列を持つマップに制限されているようです。

この制限を回避するための最良の方法は何ですか?

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

json - A <->Stringを知っているlift-jsonでマップ[A、B]をシリアル化する

タイプHashMap[Coord、Unite]のHashMapをlift-jsonでシリアル化したい。これらのタイプは私のプロジェクトに固有ですが、toString関数を使用してCoord-> Stringがあり、StringからCoordを戻すことができます(ここでコーディングされていなくても、関係ありません)。だから私はlift-jsonにMap[String、Coord]をシリアル化するように頼むことができると思いましたが、ここでserialize(format)(y)は、に適合したシリアル化関数を使用したいときに同じ関数を(再帰的に)適用しようとしますMap [String、Coord]。シリアライザーの外部で変換を実行できない理由は、このHashMapがより大きなケースクラスの一部であるため、シリアル化および逆シリアル化する方法を知るためにlift-jsonが必要だからです。

Map [String、Unite]のシリアル化と逆シリアル化を書き直すことはできますが、lift-jsonがどのように機能するかを理解していないという理由だけで、多くの役に立たないコードになります。

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

json - Scalaでlift-jsonを使用してデシリアライズするときにフィールドを無視する

このようなデータを次のようなケース クラスにデシリアライズするにはどうすればよいですか。

(つまり、JSON の値よりもケース クラスのコンストラクタ引数の方が少ない場合)

これを行うために FieldSerializer を作成しようとしましたが、逆シリアル化ではなく、シリアル化時にフィールドを無視する方法しかわかりませんでした。