import com.google.gson.Gson;
Gson gson = new Gson()
String s = gson.toJson(obj, type);
タイプに存在しない上記のJson文字列sに追加のプロパティを追加したいとします。それ、どうやったら出来るの?JSON文字列にプロパティを追加するには?
import com.google.gson.Gson;
Gson gson = new Gson()
String s = gson.toJson(obj, type);
タイプに存在しない上記のJson文字列sに追加のプロパティを追加したいとします。それ、どうやったら出来るの?JSON文字列にプロパティを追加するには?
あなたが同じことを行うには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);
あなたは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();
ありがとうございます。出来た。 – Praveen
ありがとうございます!出来た。 – Praveen