問題タブ [json-deserialization]

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 投票する
6 に答える
7689 参照

java - 特定のフィールドが存在する場合、Jackson ポリモーフィック デシリアライゼーションを使用してサブタイプにシリアル化できますか?

動物園の例でスピンを使用します。

Animalウィングスパンが指定されていない場合はインスタンスを構築し、指定されている場合はインスタンスを構築するためにポリモーフィックデシリアライゼーションを使用したいと考えてBirdいます。Jackson では、通常、型指定されていないデシリアライゼーションは次のようになります。

wingspan の値は何でもかまいませんが、具体的に一致するものがない場合、Jackson は defaultImpl クラスにフォールバックします。

私はおそらく使用できます@JsonCreator

ただし、余分な値を手動で処理し、一貫した例外をスローする必要があり、Animal後で適切にシリアル化されるかどうかは明確ではありません。

独自のTypeResolverorを使用できるようですTypeIdResolverが、生の json を自分で逆シリアル化するよりも手間がかかるようです。さらに、本質的に型情報がシリアル化されていると想定しているようTypeResolverTypeIdResolver見えるため、それらは使用するのに適していません。

JsonDeserializerタイプを指定するためにライフサイクルにフックする独自のものを実装することは可能でしょうか?ただし、基本的な Jackson アノテーション処理機能を引き続き使用しますか? を見てきましたが、JsonDeserializer.deserializeWithType(...)逆シリアル化を完全にに委任しているようTypeDeserializerです。使用するタイプを知る前に、オブジェクトの一部を逆シリアル化する必要があるという問題もあります。

または、親オブジェクトにある場合でも、動物園のペンのタイプをターゲットにする方法があるかもしれません。

ポリモーフィック型の処理で私がやりたいことをする方法はありますか?

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

java - Json 配列から Java クラスへ (Gson でデシリアライズ)

Json 応答 (jsonResultAsText という名前) があります。

Google の gson ライブラリを使用してデシリアライズしたいと考えています。

私は次のようなクラスを持っています:

JsonResponse クラスに json データを取得したい。

それは私が達成しようとするコードです:

しかし、私の Android アプリケーションでは、その古典的なエラーが発生します: 残念ながら、< app_name > が停止しました。

gson クラスを介したシリアル化/逆シリアル化に関する例がたくさんあることは知っていますが、同様の問題/例は見つかりませんでした。

前もって感謝します。

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

c# - C# で JSON 配列を逆シリアル化する

私はトリッキーな問題で立ち往生しています。

この形式の JSON 文字列があります。

「レコード」のフィールドは増減できます。

だから、私はこのようなクラスを作りました:

そして、このように逆シリアル化しようとしています:

私は何か間違ったことをしています。しかし、見つけることができません。助けてください。

前もって感謝します。

アップデート:

実際、「Invalid JSON Primitive: .」というエラーが発生していました。このコードでファイルを読み取る文字列を取得していたため:

今、私はこれでファイルを読んでいます:

それはうまくいっています。

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

c# - C# での JSON の逆シリアル化

C# で JSON を逆シリアル化しようとしていますが、NullReferenceException が発生し、その理由がわかりません。

解析しようとしている JSON は次のとおりです。

そして私はこのコードを使用しています

なぜこのエラーが発生するのですか?どうすれば修正できますか?

JSONを次のように変更すると

私は得るAfter parsing a value an unexpected character was encountered: :. Path 'Entries[0]', line 1, position 20.

編集

JSONで遊んだところ、次の1つがうまくいきました:

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

java - Json: Gson ライブラリの使用中に逆シリアル化エラーが発生しました

Map タイプに変換する必要がある json 文字列があります。

Json 使用:

json を Map に変換するコード:

エラー:

タイプに関係があることは知っていますが、タイプトークンで明示的にタイプが String になることを示しました。

gson オブジェクトは次のように宣言されます。

0 投票する
0 に答える
127 参照

windows-phone-8 - 信頼性の低い JSON を効率的に逆シリアル化する

サーバーからJSONを逆シリアル化しようとしていますが、特定のキー/値が省略されることがあり、使用できませんでした:

私は JSON.net のドキュメントを読み、次のような Linq から JSON へのデシリアライゼーションを進めました。

すべて正常に動作しますが、時々取得しますoutofmemoryexceptions(サーバーからの JSON は非常に大きいです)。JsonConverterJSON.net からカスタムを実装しようとしましたが、ネストされた階層 (3 レベルの深さ) では、JsonConverterメンテナンスは言うまでもなく、複雑すぎて理解しにくくなります。

メモリ プロファイラーを実行すると、アプリケーションで OOM 例外が発生する原因となる 150 MB を超えるピークが見られました。ヒープ セクションの下で、メモリ割り当ての 30 ~ 40% がmscorlib文字列割り当てのために行われていることがわかりました。もう 1 つの問題はループ中に発生し、GC が連続して発生していました。私は今書かれている方法に完全にうんざりしていますが、私は機知に富んでいます. 誰か助けてもらえますか?

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

json - Json.Net デシリアライゼーション、一部のプロパティを非シリアライズのままにする

次のようなjson文字列があります。

そして、これを次のようなクラスにデシリアライズしたいと思います。

基本的に Baz 値を逆シリアル化せず、代わりに生の文字列を保存します。つまり、Bazシリアル化後の文字列値を次のようにします。

"[{\"Pressure\":9001,\"ServesDrinks\":true},{\"Pressure\":0,\"ServesDrinks\":false}]"

私は Json.Net を使用していますが、これを行う方法を理解できていません。Baz理想的なケースでは、生の json を保持する魔法の属性を自分のプロパティに置きたいだけです。

ここで非常によく似た質問を見てきました: 一部のフィールドをそのままにして、JSON.NET で部分的に逆シリアル化します。

JObjectしかし、私はそのアプローチをどのように進めるかを理解していました。

(参考になれば、保持したいデータがリストであることはわかっています)

助けてくれてありがとう!

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

c# - .net で JSON-C を解析する方法

Youtube API は WP でサポートされていないため使用できないため、JSON 応答のみを使用することにしました。Youtube の応答タイプが JSON-C に変更されたようですが、これを解析するにはどうすればよいですか?

https://www.googleapis.com/youtube/v3/search?part=snippet&order=relevance&q=lil+b&key=AIzaSyACjwJrIBICZxPb1x3JRq-FQ8iaei7LqXA&alt=json

Newtonsoft JSON を試してみましたが、どちらもサポートしていません。何かアドバイスはありますか? ありがとう!