2016-04-25 28 views
0

我有这种情况:向现有的Json字符串添加参数

更多的servlet设置httpservletResponse content-type to json/application

I输出我的JSON这种方式:

out.write (new Gson().toJson(myObject)); 

其中myObject的,是一个对象和上面的代码提供了创建字符串JSON喜欢使用myObject的结构。

现在我需要在json的顶部添加一个参数,因为我需要一个参数:“result”:“okay”。

有没有一种方法可以添加这个没有changinc myObject类?

在此先感谢。

回答

0

是的。而不是使用Gson#toJson()构建String,而是使用Gson#toJsonTree()解析对象,但使用JsonElement子类创建JSON内部表示。您需要将其转换为JsonObject,然后添加新属性并最终将其写入输出流。

代码示例:

package net.sargue.gson; 

import com.google.gson.Gson; 
import com.google.gson.JsonObject; 

public class SO36837061 { 
    public static class MyClass { 
    int a = 1; 
    String b = "salut"; 
    } 

    public static void main(String[] args) { 
    MyClass myObject = new MyClass(); 
    JsonObject jsonObject = (JsonObject) new Gson().toJsonTree(myObject); 
    jsonObject.addProperty("result", "okay"); 
    String json = new Gson().toJson(jsonObject); 
    System.out.println("json = " + json); 
    } 
} 

输出:

json = {"a":1,"b":"salut","result":"okay"} 
+0

嗨,伙计,谢谢!我以另一种方式解决了问题,但是这个代码是我需要的,我很快就会使用。谢谢! – xcsob