json空字符串转实体类处理

1、情况说明

    当json字符串有空字符串时,转实体类时会报java.lang.NumberFormatException: empty String

2、解决方案

          经过下述处理,空值符串就可以转为json对象

    Trigger<LifeSafeCondition> trigger = (Trigger<LifeSafeCondition>)Utils.josnToObjBlank(x.getTriggerJson(),type);
 public static Object josnToObjBlank(String json, Type clazz)
    {
        Gson gson = new GsonBuilder().registerTypeAdapter(int.class, new IntTypeAdapter()).registerTypeAdapter(Integer.class, new IntTypeAdapter()).create();

        Object object = gson.fromJson(json,clazz);

        return object;
    }

  

public class IntTypeAdapter extends TypeAdapter<Number> {
    @Override
    public void write(JsonWriter out, Number value)
            throws IOException {
        out.value(value);
    }

    @Override
    public Number read(JsonReader in) throws IOException {
        if (in.peek() == JsonToken.NULL) {
            in.nextNull();
            return null;
        }
        try {
            String result = in.nextString();
            if ("".equals(result)) {
                return null;
            }
            return Integer.parseInt(result);
        } catch (NumberFormatException e) {
            throw new JsonSyntaxException(e);
        }
    }
}

  

posted @ 2022-01-12 11:33  zhangtianhong511  阅读(784)  评论(0)    收藏  举报