2017-01-25 3 views

答えて

1

あなたが同じことを行うにはgson.toJsonTree(..)メソッドを使用することができ、以下同じのための実施例である: -
1 JsonElementsのツリーとしてのsrcオブジェクトの等価な表現を取得するためにtoJsonTree(Object src)メソッドを使用します。
2.ステップ1で取得したgetAsJsonObject() ON JsonElementを呼び出すと、JsonObjectとして取得されます。
3. addProperty(..)メソッドを使用して、手順2でJsonObjectにプロパティを追加します。

class Employee{ 

    public Employee(String name){ 
     this.name= name; 
    } 
    private String name; 

    public String getName() { 
     return name; 
    } 

    public void setName(String name) { 
     this.name = name; 
    } 
} 

public class GsonTest { 
    public static void main(String[] args) { 
     Gson gson = new Gson(); 
     Employee employee=new Employee("Amit"); 
     String s=gson.toJson(employee, Employee.class); 
     System.out.println(s); 
     JsonElement jsonElement = gson.toJsonTree(employee); 
     jsonElement.getAsJsonObject().addProperty("dept", "IT"); 
     s=gson.toJson(jsonElement); 
     System.out.println(s); 
    } 

/** Output 
{"name":"Amit"} 
{"name":"Amit","dept":"IT"} 
*/ 

あなたのコードの変更は次のようになります -

JsonElement jsonElement = gson.toJsonTree(obj); 
jsonElement.getAsJsonObject().addProperty("new_property", "new_property_value"); 
s=gson.toJson(jsonElement); 
+0

ありがとうございます!出来た。 – Praveen

1

あなたはJsonParserを使用してJsonElementにごjsonStringを変換して、他のプロパティを追加することができます。それが役に立つと願っています。サンプルコードは次のとおりです。

Person person = new Person(); 
    person.setName("name1"); 
    person.setSurname("surnma1"); 

    Gson gson = new Gson(); 
    String json = gson.toJson(person, Person.class); 

    JsonParser parser = new JsonParser(); 

    JsonElement jsonElement = parser.parse(json); 
    JsonObject jsonObject = jsonElement.getAsJsonObject(); 
    jsonObject.addProperty("property1", "property1 value"); 

    // json2 is your new jsonString with additional property. 
    String json2 = jsonObject.toString(); 
+0

ありがとうございます。出来た。 – Praveen

関連する問題