HTTP patch 方法实现,用于合并patch json与pojo对象

依赖:
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;
  }

}

猜你喜欢

转载自blog.csdn.net/stanleyw2014/article/details/84874789
今日推荐