Json forEclipse自動生成toStringを生成するための文字列形式テンプレートを作成する方法

概念

Eclipseには、すべてのクラスのtoStringメソッドを自動生成するオプションがありました。

この機能をさらに活用して、EclipseがtoStringメソッドを生成するときにJson形式として提供する文字列形式テンプレートを作成しています。

次の文字列形式テンプレートを使用しました。

 { ${member.name()}:"${member.value}", ${otherMembers}}

今、私は次のPOJOとしてtoStringメソッドを生成しましたが、このプログラムを実行すると、有効なJSONではなくとして結果が得られました。

{ name:"null", reportees:"[1, 2, 3]", department:"[retail, banking, finance]", owns:"null", supplimentary:"null}

コード

public class TestPojo {
  private String name;
  private List<String> reportees;
  private String[] department;
  private Machine owns;
  private List<Machine> supplimentary;

public static void main(String arg[]) {
    TestPojo aTestPojo = new TestPojo();
    aTestPojo.department = new String[] { "retail", "banking", "finance" };
    aTestPojo.reportees = new ArrayList<String>() {

        {
            add("1");
            add("2");
            add("3");
        }
    };
    System.out.print(aTestPojo);
}

public static class Machine {

    private String machineName;
    private String duties;

    public String getMachineName() {
        return machineName;
    }

    public void setMachineName(String machineName) {
        this.machineName = machineName;
    }

    public String getDuties() {
        return duties;
    }

    public void setDuties(String duties) {
        this.duties = duties;
    }

    @Override
    public String toString() {
        StringBuilder builder = new StringBuilder();
        builder.append("{ machineName:\"").append(machineName).append("\", duties:\"").append(duties).append("}");
        return builder.toString();
    }

}

@Override
public String toString() {
    StringBuilder builder = new StringBuilder();
    builder.append("{ name:\"").append(name).append("\", reportees:\"").append(reportees).append("\", department:\"").append(Arrays.toString(department)).append("\", owns:\"").append(owns).append("\", supplimentary:\"").append(supplimentary).append("}");
    return builder.toString();
}

}

概念

@dvlcubeのアイデアの助けを借りて現在のオブジェクトのJSON形式の文字列を返すtoStringメソッドコードを生成する「EclipseカスタムtoString()ビルダー」を構築しました。

このソリューションのgithubに従ってください[EclipsetoString_Builder for JSON](https://github.com/djaganathan/EclipseToStringBuilderForJson/blob/master/src/main/java/com/github/djaganathan/opensource/eclipse/util/JsonToStringBuilderをクリックしてください。 java、 "Custom Eclipse toString()Builder")

サンプルテストコード

import com.google.common.collect.Maps;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import org.apache.commons.lang3.time.StopWatch;
import org.elasticsearch.common.collect.Lists;

public class TestPojo {

    private String name;
    private List<String> reportees;
    private String[] department;
    private Machine owns;
    private List<Machine> supplimentary;
    private int i = 10;
    private Map<String, Machine> machineList = Maps.newConcurrentMap();

    public static void main(String arg[]) {
        TestPojo aTestPojo = new TestPojo();
        aTestPojo.department = new String[] { "retail", "banking", "finance"};
        aTestPojo.reportees = new ArrayList<String>() {
            {
                add("1");
                add("2");
                add("3");
            }
        };

        Machine aMachine = new Machine("Train", "travel");
        Machine aMachine1 = new Machine("Lorry", "Carrier");
        aTestPojo.supplimentary = Lists.newArrayList(aMachine, aMachine1);
        aTestPojo.machineList.put("Train", aMachine);
        aTestPojo.machineList.put("Lorry", aMachine1);

        System.out.print(aTestPojo);
    }

    public static class Machine {
          private String machineName;
          private String duties;

        public Machine(String machineName, String duties) {
            super();
            this.machineName = machineName;
            this.duties = duties;
        }
        public String getMachineName() {
          return machineName;
        }
        public void setMachineName(String machineName) {
          this.machineName = machineName;
        }

      public String getDuties() {
          return duties;
      }

      public void setDuties(String duties) {
          this.duties = duties;
      }

    @Override
    public String toString() {
        JsonToStringBuilder builder = new JsonToStringBuilder(this);
        builder.append("machineName", machineName);
        builder.append("duties", duties);
        return builder.build();
    }
}

@Override
public String toString() {
    JsonToStringBuilder builder = new JsonToStringBuilder(this);
    builder.append("name", name);
    builder.append("reportees", reportees);
    builder.append("department", department);
    builder.append("owns", owns);
    builder.append("supplimentary", supplimentary);
    builder.append("i", i);
    builder.append("machineList", machineList);
    String value = builder.build();
    return value;
    }
}

このプログラムの実行中に、次のJSON出力が得られました

{"name": null,"reportees": ["1","2","3"],"department": ["retail","banking","finance"],"owns": null,"supplimentary": [{"machineName": "Train","duties": "travel"},{"machineName": "Lorry","duties": "Carrier"}],"i": 10,"machineList": {"Lorry": {"machineName": "Lorry","duties": "Carrier"},"Train": {"machineName": "Train","duties": "travel"}}}

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

動的にJSON文字列からボタンを作成する方法

分類Dev

JSONを生成するためのループ

分類Dev

文字列@RequestBodyをjsonとして自動的に解析する方法

分類Dev

golangで文字列(JSON形式)内の文字をエスケープする方法

分類Dev

動的に生成された配列オブジェクトデータをgolangでJSON形式の文字列に変換する方法

分類Dev

JSONをgolangテンプレートに印刷する方法は?

分類Dev

JSON文字列からC#クラスファイルを自動生成する方法

分類Dev

Json forEclipse自動生成toStringを生成するための文字列形式テンプレートを作成する方法

分類Dev

プレーンテキストのjsonデータを文字列に変換する方法は?

分類Dev

自動生成された<jsonObject>をjsonからxmlへのコンバーターから削除する方法

分類Dev

JSON形式の日付文字列を日付形式に解析する方法

分類Dev

エアフローテンプレートでjson文字列を解析する方法

分類Dev

Jinja2テンプレートエンジンを使用してjsonを生成する方法

分類Dev

JSON文字列をフォーマットされた形式で出力する方法は?

分類Dev

Swift 3でJSON文字列を生成する方法は?

分類Dev

Djangoテンプレートで使用するためにjsonを解析およびレンダリングする方法

分類Dev

テンプレートリテラルでJSON配列を使用する方法は?

分類Dev

これらのjsonデータを使用して自動提案を作成する方法

分類Dev

JSON文字列をループする方法

分類Dev

文字列リテラルまたは文字列テンプレートをサポートするようにtsconfig.jsonを構成する方法

分類Dev

JavascriptでDynamoDBからJSON形式の文字列を分割するための最良の方法は何ですか

分類Dev

PHPでjson配列を生成する方法

分類Dev

JSONからアンケートを表示するための動的レイアウトを膨らませる

分類Dev

Cucumber Java:JSONプラグインの生成を強制する方法

分類Dev

一貫性のない動作をするJSON文字列を生成するUDF

分類Dev

契約jsonファイルを生成するための協定消費者テストはのみですか?

分類Dev

define VHD(またはディスク、スナップショット)を使用してJsonアームテンプレートでVMを作成する方法は?

分類Dev

JSON形式で返されたエラーメッセージをテストするための空手シーンリオの作成

分類Dev

json文字列をループする方法

Related 関連記事

  1. 1

    動的にJSON文字列からボタンを作成する方法

  2. 2

    JSONを生成するためのループ

  3. 3

    文字列@RequestBodyをjsonとして自動的に解析する方法

  4. 4

    golangで文字列(JSON形式)内の文字をエスケープする方法

  5. 5

    動的に生成された配列オブジェクトデータをgolangでJSON形式の文字列に変換する方法

  6. 6

    JSONをgolangテンプレートに印刷する方法は?

  7. 7

    JSON文字列からC#クラスファイルを自動生成する方法

  8. 8

    Json forEclipse自動生成toStringを生成するための文字列形式テンプレートを作成する方法

  9. 9

    プレーンテキストのjsonデータを文字列に変換する方法は?

  10. 10

    自動生成された<jsonObject>をjsonからxmlへのコンバーターから削除する方法

  11. 11

    JSON形式の日付文字列を日付形式に解析する方法

  12. 12

    エアフローテンプレートでjson文字列を解析する方法

  13. 13

    Jinja2テンプレートエンジンを使用してjsonを生成する方法

  14. 14

    JSON文字列をフォーマットされた形式で出力する方法は?

  15. 15

    Swift 3でJSON文字列を生成する方法は?

  16. 16

    Djangoテンプレートで使用するためにjsonを解析およびレンダリングする方法

  17. 17

    テンプレートリテラルでJSON配列を使用する方法は?

  18. 18

    これらのjsonデータを使用して自動提案を作成する方法

  19. 19

    JSON文字列をループする方法

  20. 20

    文字列リテラルまたは文字列テンプレートをサポートするようにtsconfig.jsonを構成する方法

  21. 21

    JavascriptでDynamoDBからJSON形式の文字列を分割するための最良の方法は何ですか

  22. 22

    PHPでjson配列を生成する方法

  23. 23

    JSONからアンケートを表示するための動的レイアウトを膨らませる

  24. 24

    Cucumber Java:JSONプラグインの生成を強制する方法

  25. 25

    一貫性のない動作をするJSON文字列を生成するUDF

  26. 26

    契約jsonファイルを生成するための協定消費者テストはのみですか?

  27. 27

    define VHD(またはディスク、スナップショット)を使用してJsonアームテンプレートでVMを作成する方法は?

  28. 28

    JSON形式で返されたエラーメッセージをテストするための空手シーンリオの作成

  29. 29

    json文字列をループする方法

ホットタグ

アーカイブ