この記事は機械翻訳のミラー記事です。元の記事にジャンプするにはこちらをクリックしてください。

眺める: 18884|答える: 1

[出典] Fastjson JSONField deserialization invalid solution

[リンクをコピー]
掲載地 2019/01/11 10:51:31 | | | |
私はAlibabaのFastjsonを使ってオブジェクトのシリアライズとデシリアライズを行いました。元のjson文字列はすべてa、b、c...だったので。 そのような文字は表現されていますが、私はそれらをオブジェクトにシリアライズしており、オブジェクトをそのような無意味なプロパティとして定義することはできません。
ここではJSONFieldの注釈が使用されています。

フィールドをオンにする方法とセットをつける方法の違い@JSONField

  • フィールドは、直列化および非直列化操作の両方を指定します
  • getに設定し、シリアライズ時に操作を指定します
  • setはデシリアライズ時の操作を指定します



使用後は通常通りシリアライズはできますが、下の図のように通常通りデシリアライズはできません。


json string:

{"a":"shenzhou","b":"Jing Q7UB02","c":110000,"d":"2019-01-08T17:07:04+08:00","e":120.775085,"f":30.13825,"g":77,"h":171,"i":0,"j":4951,"k":2,"l":0,"m":0,"n":4,"o":"0","p" :1}


エラーの原因:

オブジェクトの性質はジャワのハンプ命名法に従っておらず、最初の単語を除いてすべて大文字で表されます。 例えば

int myStudentCount;
変数myStudentCountはすべて小文字で、その後の最初の文字は大文字で表されます。

解決:

オブジェクト属性の名前を変更し、以下のコードでget/setメソッドを再生成します:

正しい属性に対しては、以下の画像のようにデシリアライズが成功します。







先の:職場電子書籍
次に:PFD形式は他の書籍と混在しています
 地主| 掲載地 2019/01/14 16:29:58 |
私はfastjsonをやめてJacksonに切り替え、Alibabaのオープンソースに出会いました。
使い方は以下の通りです:

pop.xml



JAVAオブジェクトからJSON [JSON Serialization]



JSON to Java クラス [JSON deserialization]



免責事項:
Code Farmer Networkが発行するすべてのソフトウェア、プログラミング資料、記事は学習および研究目的のみを目的としています。 上記の内容は商業的または違法な目的で使用されてはならず、そうでなければ利用者はすべての結果を負うことになります。 このサイトの情報はインターネットからのものであり、著作権紛争はこのサイトとは関係ありません。 ダウンロード後24時間以内に上記の内容を完全にパソコンから削除してください。 もしこのプログラムを気に入ったら、正規のソフトウェアを支持し、登録を購入し、より良い本物のサービスを受けてください。 もし侵害があれば、メールでご連絡ください。

Mail To:help@itsvse.com