使用jsonparser更改json文件中的值

时间:2016-10-08 19:58:14

标签: java json

我是Java新手,但已经想出如何从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");

如何更新" Dialog"的值?在这个对象?

2 个答案:

答案 0 :(得分:0)

您可以根据给定的响应值创建新的Json。

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

您可以按如下方式使用JSONObject:

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

如果您将Array作为响应,请使用以下代码:

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

要使用构建器构建JSON,您可以使用Json构建器:

def builder = new JsonBuilder()
builder([
    [type: 'string', values: ['no', 'name', 'here']]
])

答案 1 :(得分: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;