1

我想修补一个 JSON 字符串。我得到了必须修补的字段的“路径”,以及修补的“值”。该值可以是任何东西、字符串、整数、浮点数、布尔值、数组或对象。

如何将对象转换为 JsonValue?

javax.json.JsonPointer 类中的“替换”方法需要一个 JsonValue 对象。

4

2 回答 2

0

使用这个

    import com.google.gson.Gson;

    Statue statue = new Statue();//java class
    String json = new Gson().toJson(statue);
    response.setContentType("application/json");
    response.setCharacterEncoding("UTF-8");
    response.getWriter().write(json);

Json会走java类结构

于 2019-12-04T08:29:12.437 回答
0

您可以使用Jackson,可以使用Maven将其添加到 pom 中,指定以下依赖项:

<dependency>
    <groupId>com.fasterxml.jackson.core</groupId>
    <artifactId>jackson-databind</artifactId>
    <version>2.9.8</version>
</dependency>

使用 Jackosn,您可以使用 ObjectMapper(使用 导入它import com.fasterxml.jackson.databind.ObjectMapper;)。因此,如果您有一个objMyClass 类型的对象,您可以执行以下操作:

MyClass objToCovert = new MyClass();
ObjectMapper mapper = new ObjectMapper();
String json = mapper.writeValueAsString(obj);

json 必须传递给更新 Json 结构以进行修补的方法。作为可以进行更新的方法的示例,我报告以下内容(tag是关键):

public static JsonStructure updateKeyValue(JsonStructure jsonStructure, String tag, String value) {
    JsonPointer jsonPointer = Json.createPointer("/" + tag);
    JsonString jsonStringValue = (JsonString) jsonPointer.getValue(jsonStructure);
    jsonStructure = jsonPointer.replace(jsonStructure, jsonStringValue);
    return jsonStructure;
}
于 2019-12-04T10:18:19.487 回答