java - 修改 json 数组文件中的键值,并将更改后的值写入同一文件

标签 java gson

在文件“test.json”中有一个 json 数组。该数组包含以下内容:

    [
      {
        "txt": "this text is encrypted"
        "ft": "this text is encrypted",
        "Id": 2,
        "No": 2,
      },
      {
        "txt": "this text is encrypted"
        "ft": "this text is encrypted",
        "Id": 42,
        "No": 2,
      },
      {
        "txt": "this text is encrypted"
        "ft": "this text is encrypted",
        "Id": 12,
        "No": 24,
      },
      .
      .
      .
      . ~ 800 objects, each have the same signature 
      {
        "txt": "this text is encrypted"
        "ft": "this text is encrypted",
        "Id": 47,
        "No": 4,
      }

    ]

The task

我想做的是,读取 test.json ,分别遍历数组中每个对象的每个键“txt”和“ft”(这些键的值已加密,我已经编码了该方法解密这些值)并将这些值分别传递给我的 crypto() 方法,该方法分别返回解密的字符串,然后将 test.json 文件中每个 key 的旧加密值覆盖为所有对象的新解密值在数组中。

What I'm trying to achieve

我在正确实现以下目标方面遇到困难:

  • 一次访问每个对象的“txt”和“ft”值;两个人在一个物体上。
  • 将“txt”和“ft”值分别传递给decrypt()方法。
  • 将解密()方法返回的解密字符串分别存储在临时字符串变量中。
  • 将这些临时字符串变量直接写入文件,从而用新的解密值覆盖“txt”和“ft”的原始值(已加密)。

My attempt

final String JSON_PATH = "/test.json";
        BufferedReader br = new BufferedReader(new FileReader(JSON_PATH));
        JsonParser parser = new JsonParser();
        JsonArray arrayObj = parser.parse(br).getAsJsonArray();

for (JsonElement elm : arrayObj) {
            JsonObject burObj = elm.getAsJsonObject();
            String  temp_fn  ;  
            String  temp_txt  ; 
            String  _fn = burObj.get("ft").getAsString();
            String  _txt = burObj.get("txt").getAsString();
            temp_fn = Decrypt(_fn);
            temp_txt= Decrypt(_txt);
}
<小时/>

这是我在我的大脑停止工作之前所得到的,就像如何将解密的字符串写入正确的值键并覆盖它们,同时保持 test.json 文件打开以供 for 循环通过数组中的下一个对象,然后再次执行整个过程,直到完成。

另外,我对我已经 5 年来没有用 java 编写的代码质量表示歉意!

<小时/>

最佳答案

将新的 json 对象重新保存到文件中。或者这种方法不适合您?

关于java - 修改 json 数组文件中的键值,并将更改后的值写入同一文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56691964/

相关文章:

java - 如何获取文本并响应 JFormattedTextField 上的输入按下

java 转换投影 EPSG :900913 to EPSG:4326

java - 调用过程默认值而不将值绑定(bind)到 Jdbc 中的参数

kotlin - Kotlin 中子类型的 GSON 反序列化

java - Gson反序列化具有不同值类型的json

java - 转换为 JSON 字符串时扩展类中的数据丢失

Java-Gson 解析 "Expected BEGIN_ARRAY but was BEGIN_OBJECT"

java - Java 中的 RandomAccessFile vs Scanner vs FileInputStream

java - UDP ArrayList <对象> 检查 IfClientExists

java - 在Retrofit中使用Gson解析JSON