2
내 워크 플로에 일부 JSONObject가 있고 JSON 파일에 같은 JSONObject를 저장하여 저장합니다.JSON 파일 - Java : 필드 값 편집/업데이트
필드가 필요한 곳은이고 새로운 JSONObjects 인스턴스의 내용은 json 파일을 효율적으로 업데이트하고 싶습니다.
예 : 내가 좋아하는 것 일반적으로
if (!(ObjectInMemory.get(key1).equals(ObjectOnFile.get(key1)))
// update file field value <--- how to?
: 내가 좋아하는
ObjectInMemory = {key1:val1_newer, key2:val2_newer,...}
가 업데이트 될 것 가지고 내가 메모리에서
ObjectOnFile = {key1:val1, key2:val2,...}
이 파일에
발을 업데이트하다 그 내용이 새로운 (다른) 모든 열쇠의 ue.
사실 내 코드는 다음과 같습니다
import org.json.JSONObject;
import com.fasterxml.jackson.databind.ObjectMapper;
ObjectMapper mapper = new ObjectMapper();
Sting key = "key1"; //whatever
JSONObject jo = new JSONObject("{key1:\"val1\", key2:\"val2\"}");
JSONObject root = mapper.readValue(new File(json_file), JSONObject.class);
JSONObject val_newer = jo.getJSONObject(key);
JSONObject val_older = root.getJSObject(key);
if(!val_newer.equals(val_older)){
root.put(key,val_newer);
/*write back root to the json file...how? */
}
안녕 PVR, 감사 대답. 이렇게하면 write 함수가 전체 파일을 다시 쓰거나 부분 만 업데이트됩니까? – GrayFox
파일 전체 json을 다시 작성하십시오. – PVR
답변 해 주셔서 감사합니다. 해결 된 :) – GrayFox