我想修补一个 JSON 字符串。我得到了必须修补的字段的“路径”,以及修补的“值”。该值可以是任何东西、字符串、整数、浮点数、布尔值、数组或对象。
如何将对象转换为 JsonValue?
javax.json.JsonPointer 类中的“替换”方法需要一个 JsonValue 对象。
我想修补一个 JSON 字符串。我得到了必须修补的字段的“路径”,以及修补的“值”。该值可以是任何东西、字符串、整数、浮点数、布尔值、数组或对象。
如何将对象转换为 JsonValue?
javax.json.JsonPointer 类中的“替换”方法需要一个 JsonValue 对象。
使用这个
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类结构
您可以使用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;
)。因此,如果您有一个obj
MyClass 类型的对象,您可以执行以下操作:
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;
}