2016-10-08 13 views
0

私はJavaの新機能ですが、jsonファイルから値を抽出する方法を考え出しましたが、値の変更方法はわかりません。jsonparserを使用してjsonファイル内の値を変更する

JsonElement staff = gson.fromJson(new FileReader("file1.json"), JsonElement.class); 
String json = gson.toJson(staff); 
JsonParser parser = new JsonParser(); 
JsonElement jsonTree = parser.parse(json); 
JsonObject jsonObject = jsonTree.getAsJsonObject(); 
JsonElement f3obj = ((JsonObject) ((JsonObject) ((JsonArray) jsonObject.get("Options")).get(1)).get("Option").get("Dialog"); 

このオブジェクトの「ダイアログ」の値を更新するにはどうすればよいですか?

+0

jsonも共有できますか? – cody123

+0

これは私がhttp://pastebin.com/hKi79ZnFを使用しているjsonファイルです – TAP

+0

変更に使用できるコードを追加しました。私があなたの問題を解決した場合、正しいとupvoteをマークしてください。 – cody123

答えて

0

下記のコードを使用して更新できます。

 JsonObject f3obj = ((JsonArray) jsonObject.get("Options")).get(1).getAsJsonObject().get("Option").getAsJsonObject(); 
     f3obj.addProperty("Dialog", new Integer(10)); 
     System.out.println(f3obj); 

私はGuavaライブラリを使用していますので、以下のパッケージが使用されています。

import com.google.gson.Gson; 
import com.google.gson.JsonArray; 
import com.google.gson.JsonElement; 
import com.google.gson.JsonIOException; 
import com.google.gson.JsonObject; 
import com.google.gson.JsonParser; 
import com.google.gson.JsonSyntaxException; 
0

指定された応答値から新しいJsonを作成できます。

def jsonData = new JsonSlurper().parseText(response.contentAsString) 

そして、次のようにJSONObjectを使用することができます。

JSONObject newStudent = jsonData.getJSONObject("student"); 
newStudent.put("name", "John"); 

応答は以下のコードを使用して、あなたが配列を取得した場合:ビルダーあなたを使用してJSONを構築するための

JSONObject newStudent = jsonData.getJSONObject(0).getJSONObject("student"); 
nweStudent.put("name", "John"); 

をJsonビルダーを使用できます。

関連する問題