2016-04-25 10 views
0

に引数を追加します。は、私はこのような状況を持っている既存のJSON文字列

I出力私のJSONこの方法:myObjectというが、オブジェクトであり、上記のコードはmyObjectという構造を使用してのような文字列JSONを作成提供

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

これで、 "result": "okay"のような引数が必要なので、jsonの先頭に引数を追加する必要があります。

changinc myObjectクラスなしでこれを追加する方法はありますか?

ありがとうございます。

答えて

0

はい。 Stringを使用してGson#toJson()を作成する代わりに、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

関連する問題