2016-10-08 4 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

이것은 json 파일입니다. http://pastebin.com/hKi79ZnF – 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 빌더를 사용할 수 있습니다.

관련 문제