JSONをデシリアライズするGsonのエンティティクラス

gsonでオーバーベンチマークプロセスパフォーマンスが近いジャクソン、ジャクソン疑いの安全性と性能安定性にあります。

私は連続fastjson複数のバグに遭遇し、彼は最終的にはジャクソンの抱擁に入れ、あきらめていた。しかし、より多くの設定を使用するには、ジャクソンのAPI。

APIは、いくつかのシーン私のJSONは、エンティティ間の相互変換をJSONに簡単な問題(シリアライズとデシリアライズ)で、シンプルで十分です。

gson APIは、比較的簡単であり、この記事では、以下の抗シリアル化コードの起源です。

@SerializedNameは、フィールド名の問題を持つエンティティのJSON矛盾を示すために使用されます。

インポートcom.google.gson.annotations.SerializedName;
 インポートlombok.AllArgsConstructor;
 インポートlombok.Data;
 インポートlombok.NoArgsConstructor;
 / ** * 
 * ASRサーバの状態
 * / 
@Data 
@AllArgsConstructor 
@NoArgsConstructor 
パブリック クラスASRServerStatus { 


    / ** * 
     *アイドル労働者の現在の数
     * / 
    @SerializedName(「num_workers_available」プライベート整数availWorkers; 


    // 次のフィールドは、Pythonの収集サーバをフォローアップが追加され、インターフェイスのリターンは現在のデータがまだ関連分野されていません

    / ** * 
     *タスクが処理されました数
     * /
    @SerializedName( "num_requests_processed" プライベート整数processedRequests; 

    / ** * 
     *サーバー負荷1分
     * / 
    プライベートフロートLOAD1; 

    / ** * 
     *サーバーの負荷5分
     * / 
    プライベートフロートload5; 

    / ** * 
     *サーバーの負荷15分
     * / 
    プライベートフロートload15、


    プライベートフロートtotalMem; 

    / ** * 
     *キャッシュ/共有メモリ
     * / 
    プライベートフロートSHAREdmemが; 

    / ** * 
     *式で算出得られる:総-BUFF-使用される
     * / 
    プライベートフロートavailMem、

    プライベートフロートusedMem; 
}
輸入com.google.gson.Gson;
輸入com.netmarch.web.open.ws.ASRServerStatus;
輸入org.junit.Test; 

パブリック クラスTestGson { 
    @Test 
    公共 ボイドdeserial()
    { 
        文字列JSON = "{\" num_workers_available \ ":9、\" \ num_requests_processed ":61}" 
        Gson gson = 新しいGson(); 
        ASRServerStatusステータスは gson.fromJson(JSON、ASRServerStatus = クラス)。
        System.out.println(ステータス)。
    } 
}

結果:

 

おすすめ

転載: www.cnblogs.com/passedbylove/p/11934157.html
おすすめ