google.json的使用

创建初始化gsonBuilder: 

private final Gson gson;

    public DeployServlet() {

        GsonBuilder gsonBuilder = new GsonBuilder();
        gsonBuilder.registerTypeHierarchyAdapter(DeviceUpgradeStatus.class, new UpgradeStatusSerializer());
        gsonBuilder.setDateFormat("yyyy-MM-dd'T'HH:mm:ssXXX");
        this.gson = gsonBuilder.create();
    }

创建适配的serializer: 

public class UpgradeStatusSerializer implements JsonSerializer<DeviceUpgradeStatus> {
    @Override
    public JsonElement serialize(DeviceUpgradeStatus src, Type typeOfSrc, JsonSerializationContext context) {
        JsonObject element = new JsonObject();

        element.addProperty("deviceId", src.getDeviceId());
        element.addProperty("deployname", src.getDeployName());
        element.addProperty("pkgname", src.getPkgName());
        element.addProperty("type", src.getPkgType());
        element.addProperty("version", src.getVersion());
        element.addProperty("os", src.getOs());
        element.addProperty("arch", src.getArch());
        element.addProperty("extversion", src.getExtVersion());
        element.addProperty("status", src.getStatus());
        element.addProperty("updstatus", src.getUpdstatus());
        element.addProperty("errorcode", src.getErrorCode());
        element.addProperty("ts", src.getTs());
        return element;
    }
}

 使用:

String json = this.gson.toJson(lists.toArray(new  DeviceUpgradeStatus[] {}));
resp.setContentType("application/json");
            resp.getOutputStream().write(json.getBytes("UTF-8"));
            resp.setStatus(HttpServletResponse.SC_OK);

猜你喜欢

转载自blog.csdn.net/margin_0px/article/details/86478678