5

GSONを使用して、リストのクラス名を出力された json 文字列に追加するにはどうすればよいですか? 私はAPIを調べましたが、これを行うための参照を見逃していました. 実際のコードでGsonBuilderを使用していますが、そのオプションも表示されません。

public class Person {
  String name;

  public Person(String name){
    this.name = name;
  }

  public static void main(String [] args){
    Person one = new Person("Alice");
    Person two = new Person("Bob");

    List<Person> people = new ArrayList<Person>();
    people.add(one);
    people.add(two); 

    String json = new Gson(people);
  }
}

これにより、次の出力が得られます。

json = [{"名前": "アリス"},{"名前": "ボブ"}]

次の出力を達成するにはどうすればよいですか? または似たようなもの。

json = {"人":[{"名前": "アリス"},{"名前": "ボブ"}]}

また

json = [{"人":{"名前": "アリス"}},{"人":{"名前": "ボブ"}}]

それが私が見逃した些細なことであることを願っています。前もって感謝します。

4

1 に答える 1

5

答えがまだ興味深いかどうかはわかりませんが、できることは次のとおりです。

public static void main(String [] args){
    Person one = new Person("Alice");
    Person two = new Person("Bob");

    List<Person> people = new ArrayList<Person>();
    people.add(one);
    people.add(two); 

    Gson gson = new Gson();
    JsonElement je = gson.toJsonTree(people);
    JsonObject jo = new JsonObject();
    jo.add("person", je);
    System.out.println(jo.toString()); //prints {"person":[{"name": "Alice"},{"name": "Bob"}]}
}
于 2012-11-27T18:39:28.613 に答える