以下のコードを使用して、最初に gson を使用して Adwords API で Campaign のインスタンスをシリアル化しようとしています。
Campaign c = new Campaign();
c.setName("beijing");
c.setId(23423L);
Gson gson = new Gson();
String json = gson.toJson(c);
クラス Money が __equalsCalc という名前の複数の JSON フィールドを宣言しているという例外が発生します。以下のコードでstruts2のjsonプラグインでインスタンスをシリアライズしようとすると
String str = org.apache.struts2.json.JSONUtil.serialize(c);
System.out.println(str);
それは機能し、正しい結果を出力します
{"adServingOptimizationStatus":null,"biddingStrategy":null,"budget":null,"campaignStats":null,"conversionOptimizerEligibility":null,"endDate":null,"frequencyCap":null,"id":23423,"name":"beijing","networkSetting":null,"servingStatus":null,"settings":null,"startDate":null,"status":null}
次に、私の質問は、struts2 の json プラグインがインスタンスを正しくシリアル化できるのに、gson ができないのはなぜですか? struts2 の json プラグインを使用してオブジェクトを json にシリアル化できますか? これは、この状況ではなく struts2 で json の結果を生成するように設計されているためです。