java - 更新.json文件(使用json.simple)

时间:2015-01-15 01:46:47

标签: java json

我有一个.json文件,我正在使用它像属性文件。读完json文件后,我从" Execute"中获取值。节点,然后我想更新"执行"值为" N"。

的节点

我的json文件看起来像这样。 {" RunDate":" 2015-01-12""执行":" Y"}。我写了代码来读取json文件,我试图通过编写一个新文件来更新文件。

JSONParser parser = new JSONParser();
    try {
        FileReader fr = new FileReader("c:\\B\\myControl.json");

        Object obj = parser.parse(fr);

        JSONObject jsonObject = (JSONObject) obj;
        ExecuteRun = (String) jsonObject.get("Execute");

        RunDate = (String) jsonObject.get("RunDate");
        //update

        jsonObject.put("Execute", "N");
        jsonObject.put("RunDate", RunDate);

        FileWriter file = new FileWriter("c:\\B\\mycontrol.json", true);
        try {
            file.write(jsonObject.toJSONString());

        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            file.flush();
            file.close();
        }
    } catch(Exception e) {
        e.printStackTrace();
    }

FileWriter行获取"访问被拒绝"错误。

任何人都可以帮助我吗?

2 个答案:

答案 0 :(得分:0)

放置此代码

try (FileWriter file = new FileWriter("/C:/Users/itaas/Desktop/text1.txt")) {
            file.write(js.toString());
            System.out.println("Successfully Copied JSON Object to File...");
            System.out.println("\nJSON Object: " + js);

        }

    } catch (Exception e) {
        e.printStackTrace();
    }

答案 1 :(得分:0)

//this worked for me

    package com.FLP.utils;

    import java.io.FileReader;
    import java.io.IOException;
    import java.io.Reader;
    import java.io.FileWriter;

   import org.json.simple.JSONArray;
   import org.json.simple.JSONObject;
   import org.json.simple.parser.JSONParser;
   import org.json.simple.parser.ParseException;

   @SuppressWarnings("unchecked")
   public class TestDataReader {

    public static void main(String[] args) {        

    try (Reader reader = new FileReader(".\\testdata\\TC_11.json")) {
        // Read JSON file
        JSONParser parser = new JSONParser();
        JSONObject data = (JSONObject) parser.parse(reader);
        data.put(key value);
        @SuppressWarnings("resource")
        FileWriter file = new FileWriter(".\\testdata\\TC_11.json");
        file.write(data.toJSONString());
        file.flush();

    } catch (IOException e) {
        e.printStackTrace();
       } catch (ParseException e1) {
            e1.printStackTrace();
       }
   }

   }