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 forEclipse自動生成toStringを生成するための文字列形式テンプレートを作成する方法

分類Dev

指定された形式でjsonを生成するためのデータフレームを作成する方法

分類Dev

AWS Cloudformation-json / yamlテンプレートで大文字または小文字の文字列を作成する方法

分類Dev

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

分類Dev

json配列を生成するためのネストされたループ

分類Dev

同じテーブル内の多くの時系列:正しい形式でJSON文字列を生成する方法

分類Dev

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

分類Dev

AzureLogicAppsでjsonをjsonに変換するためのLiquidテンプレート

分類Dev

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

分類Dev

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

分類Dev

Tensorflow:同様の出力を生成するためのJSONデータのトレーニング

分類Dev

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

分類Dev

PHP を使用して JSON をループし、ネストされた JSON の新しい形式を生成する

分類Dev

自動生成された pojo クラスから json 配列データを取得して表示する方法は?

分類Dev

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

分類Dev

配列をマップしてjsonテンプレートに配置するためのansibleフィルター

分類Dev

Spark:JSON文字列のJSONスキーマを生成する

分類Dev

angle.js:SPAを構築するためのテンプレートとJSONの使用方法

分類Dev

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

分類Dev

PythonでJSON形式のKafkaメッセージを生成する方法

分類Dev

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

分類Dev

Thingsboardの受信JSONデータからアセット/エンティティを自動的に生成するにはどうすればよいですか?

分類Dev

値を動的に検索するためのJSONキーを作成する方法

分類Dev

Javaインスタンスの完全なjson文字列を生成する方法

分類Dev

AJAXによって取得されたJSON形式の文字列をテーブルのような形式にする方法

分類Dev

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

分類Dev

マップからJSONを生成するためのTerraformForループ

分類Dev

AngularJSでJSONから動的にテンプレートを作成する

分類Dev

エラーを解析するためのjsonの生成

Related 関連記事

  1. 1

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

  2. 2

    指定された形式でjsonを生成するためのデータフレームを作成する方法

  3. 3

    AWS Cloudformation-json / yamlテンプレートで大文字または小文字の文字列を作成する方法

  4. 4

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

  5. 5

    json配列を生成するためのネストされたループ

  6. 6

    同じテーブル内の多くの時系列:正しい形式でJSON文字列を生成する方法

  7. 7

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

  8. 8

    AzureLogicAppsでjsonをjsonに変換するためのLiquidテンプレート

  9. 9

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

  10. 10

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

  11. 11

    Tensorflow:同様の出力を生成するためのJSONデータのトレーニング

  12. 12

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

  13. 13

    PHP を使用して JSON をループし、ネストされた JSON の新しい形式を生成する

  14. 14

    自動生成された pojo クラスから json 配列データを取得して表示する方法は?

  15. 15

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

  16. 16

    配列をマップしてjsonテンプレートに配置するためのansibleフィルター

  17. 17

    Spark:JSON文字列のJSONスキーマを生成する

  18. 18

    angle.js:SPAを構築するためのテンプレートとJSONの使用方法

  19. 19

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

  20. 20

    PythonでJSON形式のKafkaメッセージを生成する方法

  21. 21

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

  22. 22

    Thingsboardの受信JSONデータからアセット/エンティティを自動的に生成するにはどうすればよいですか?

  23. 23

    値を動的に検索するためのJSONキーを作成する方法

  24. 24

    Javaインスタンスの完全なjson文字列を生成する方法

  25. 25

    AJAXによって取得されたJSON形式の文字列をテーブルのような形式にする方法

  26. 26

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

  27. 27

    マップからJSONを生成するためのTerraformForループ

  28. 28

    AngularJSでJSONから動的にテンプレートを作成する

  29. 29

    エラーを解析するためのjsonの生成

ホットタグ

アーカイブ