依赖:
javax.json
jackson-databind
import com.fasterxml.jackson.databind.ObjectMapper;
import javax.json.Json;
import javax.json.JsonArray;
import javax.json.JsonObject;
import javax.json.JsonPatch;
import java.io.IOException;
import java.io.StringReader;
import java.io.StringWriter;
public class Utils {
public static <T> T patchObject(T t, JsonArray operations) throws IOException {
JsonPatch jsonPatch = Json.createPatch(operations);
ObjectMapper appMapper = new ObjectMapper();
JsonObject newAppJson = jsonPatch.apply(Json.createReader(new StringReader(appMapper.writeValueAsString(t))).readObject());
final StringWriter appJsonStringWritter = new StringWriter();
Json.createWriter(appJsonStringWritter).writeObject(newAppJson);
T result = (T) appMapper.readValue(appJsonStringWritter.toString(), t.getClass());
return result;
}
}