問題タブ [objectmapper]
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.
java - JsonMappingException: タイプ [単純なタイプ、クラス com.fasterxml.jackson.databind.node.ObjectNode] に適したコンストラクターが見つかりません
外部オブジェクトのJSONMappingException 、クラスの JSONMappingException を読みましたが、クラス の解決策が見つかりませんObjectNode
。
外部オブジェクトの JSONMappingException を読み取ること で、オブジェクトをマッパーに登録する必要があることは理解していますが、Web サービスを呼び出しているため、ObjectMapper クラスを作成していません。
(com.fasterxml.jackson.databind.node.ObjectNode) インスタンス変数ReportQueryData.java
を含むMy POJO ( ) の Web サービスを呼び出そうとしています。ObjectNode
ReportQueryData.java
現在、リクエストで ReportQueryData を含む Web サービスを呼び出していますが、以下の例外に直面しています。
swift - AlamofireObjectMapper を使用して関数を作成し、オブジェクトを返す
AlamofireObjectMapper 拡張機能を使用して、サーバーからの JSON 応答をマップし、オブジェクトを返す関数を作成しようとしています。
私はこれらのコードを書きましたfunc
Herer は私の Constanst.swift です (DownloadComplete
クロージャーを含む)
downloadPokemonDetails1
関数がエラーを出す理由がわかりませんun-expected Non-void return value in void function
私のPokemon
クラス
java - 値を小文字に置き換えるようにオブジェクト マッパーを構成する
次のようなクラス Diff があります。
次の呼び出しを使用して json ノードを作成します。
次のような Diff がある場合:
やっている:
戻ります:
ただし、「操作」という言葉は「操作」である必要があります。おそらく、「操作」を読み取るときに「操作」に変換するように ObjectMapper を構成する方法があると思われますが、その方法がわかりません。誰か知ってる?
json - ObjectMapper を使用したさまざまなタイプの JSON ファイル
AlamofireObjectMapper を使用してバックエンド サーバーと通信しています。リクエストの 1 つの結果は、次の 2 つの値を含む項目の配列です。
- 2 番目の値 (「arbitraryData」) がどのタイプのデータであるかを示す「typeIdentifier」
- 「任意のデータ」:
- "typeIdentifier" CONTAINS "X" の場合、arbitraryData の型は ArbitraryDataTypeX です
- "typeIdentifier" CONTAINS "Y" の場合、arbitraryData の型は ArbitraryDataTypeY です。
2 つの ArbitraryDataType クラスは共通の祖先を共有していません (Mappable を除く)。プリミティブ型、配列、オプションなどの場合もあります。
適切なタイプを使用して AlamofireObjectMapper に「arbitraryData」フィールドを解析させるにはどうすればよいですか。
次の JSON ファイルを参照してください。
対応する Swing ファイルは次のようになります。
背景情報: AlamofireObjectMapper を使用してバックエンド サーバーと通信しています。リクエストの 1 つの結果は、Item の配列です。typeIdentifier-メカニズム (実際にはもう少し複雑ですが、これは省略しましょう) はバックエンドによって提供され、変更できません。
java - Jackson ObjectMapper が NON_NULL でも NullPointerException をスローする
次の JSON が使用され、「phones」または「emailAddresses」のいずれかが null の場合、NullPointerException が発生します。
JSON:
そして、ここにスタックトレースがあります:
次のようにカスタム ObjectMapper を設定しています。
つまりCteUserContext cteUserContext = MigrationObjectMapper.getMigrationObjectMapper().convertValue(item.getItem(), new TypeReference<CteUserContext>(){});
、エラーがスローされます。
CteUserContext の内部には、List と List を含む User オブジェクトがあります。これらは、オブジェクト マッパーの構成に基づいてシリアル化するべきではありませんか?
arrays - Objectmapper は JSON 内の 1 つのアイテムの配列を取得します
だから私は ObjectMapper と Realm と一緒に使用している次の JSON を持っています。
私の問題は、「タイプ」からデータを取得することです。配列内の一部のアイテムでは「今」または「後で」と表示され、他のアイテムでは空です(したがって、タイプアイテムは指定されません)。
マッピングで次のことを試みました。
Realm データベースを確認すると、[getType] の配列である typez が作成されていることがわかりますが、すべての項目 (types が "now" の項目も含む) で空になっています。他の 2 つの項目 (id と url) はデータベースに入力されます。
データベースに保存されないというのは、何が間違っていますか?
java - json ルート要素 jackson を翻訳しますか?
私はjackson 1.9を使用しており、そのObjectMapper
クラスを使用してコンテンツをシリアライズおよびデシリアライズしています。そのため、シリアル化中にすべてのキーを特定の形式に変換し、逆シリアル化中に元に戻すPropertyNamingStrategyを使用しています。
ただし、これにより、次のようなjsonが得られます。
オブジェクト マッパー:---> JSON 文字列:
したがって、myNamingStrategy
は json ルート要素には適用されません。その名前は、シリアル化中に短い名前に変換されません。
ルート要素にも同様のシリアライズおよびデシリアライズ戦略を適用するにはどうすればよいですか??
java - UNWRAP_ROOT_VALUE が動作しないジャクソン?
次のように、JSON 形式のコンテンツ本文を含む HTTP 要求をサーバーに送信します。
クライアント
これにより、コンテンツが JSON に変換され、ルート要素も追加されます。命名戦略を使用してプロパティ名をフォームAnnottaionIntrospector
に変換し、同様に rootName を同じフォームに変換します。
Annotation のルート要素はinsideAE
に変換され、同様にキーは を使用して短縮されます。ae
AnnotationIntrospector
PropertyNamingStrategy
サーバ
サーバーで受信するリソースはLinkedHasMap
、クライアントから送信された JSON です。
ご覧のとおり、変更されたルート名が存在します。
ただし、 POJO に正しくobjectMapper.convertValue(resource, AE.class);
変換されずAE
、エラーが発生します。
を適用UNWRAP_ROOT_VALUE
しましたが、それでもエラーが発生します。UNWRAP_ROOT_VALUE
Json文字列でのみ機能すると思いますか??
cliemt からルート値をラップせず、json を次のように送信する場合、
ルート要素がなくても、リソースを POJO に正常に変換できます (を使用objectMapper.convertValue(resource, AE.class)
)。
しかし、ラッピング後は機能しません。これに対する提案はありますか??