jsonlib使用

1.jsonlib

1.1 相关jar包:

json-lib.2.4-jdk15.jar

1.2 java类2json

自定义processor处理类,并可通过style值返回不同的参数值

public class Advert implements java.io.Serializable {
    
    // Fields
    
    /**
     * serialVersionUID
     */
    private static final long serialVersionUID = -886134245592090495L;
    
    private Long id;
    
    private String title;
    
    private String url;
    
    private String picPath;
    
    private Short status;
    
    private Integer sortOrder;
    
    private String createTime;
    
    private String videoPath;
    
    private Integer sourcePlat;
    
    private Integer adSlotId;
    
    private String thirdAdId;
//省略构造函数及set/get方法
}

public class AdvertProcessor implements JsonBeanProcessor {
    private int style = 0;
    
    public AdvertProcessor() {
        super();
    }
    
    public AdvertProcessor(int style) {
        super();
        this.style = style;
    }
    
    /* (non-Javadoc)
     * @see net.sf.json.processors.JsonBeanProcessor#processBean(java.lang.Object, net.sf.json.JsonConfig)
     */
    @Override
    public JSONObject processBean(Object bean, JsonConfig jsonConfig) {
        if(!(bean instanceof Advert)) {
            return new JSONObject(true);
        }
        
        Advert advert = (Advert)bean;
        JSONObject obj = new JSONObject(false);
        
        switch (this.style) {
            case 0:
                processTiny(obj, advert, jsonConfig);
                break;
            case 1:
                processSimple(obj, advert, jsonConfig);
                break;
            case 2:
                processComplex(obj, advert, jsonConfig);
                break;
        }
        return obj;
    }
    
    private void processTiny(JSONObject obj, Advert u, JsonConfig jsonConfig) {
        obj.element("id", u.getId())
            .element("name", u.getTitle())
            .element("photo", u.getPicPath() == null ? "" : u.getPicPath())
            .element("url", u.getUrl());
    }
    
    private void processSimple(JSONObject obj, Advert u, JsonConfig jsonConfig) {
        obj.element("id", u.getId())
            .element("name", u.getTitle() == null ? "" : u.getTitle())
            .element("photo", u.getPicPath() == null ? "" :  u.getPicPath())
            .element("url", u.getUrl() == null ? "" : u.getUrl())
            .element("sortOrder", u.getSortOrder() == null ? 0 : u.getSortOrder());
    }
    
    private void processComplex(JSONObject obj, Advert u, JsonConfig jsonConfig) {
        obj.element("id", u.getId() == null ? "" : u.getId())
            .element("name", u.getTitle() == null ? "" : u.getTitle())
            .element("photo", u.getPicPath() == null ? "" : u.getPicPath())
            .element("url", u.getUrl() == null ? "" : u.getUrl())
            .element("sortOrder", u.getSortOrder() == null ? "" : u.getSortOrder())
            .element("status", u.getStatus() == null ? "" : u.getStatus())
            .element("sourcePlat", u.getSourcePlat() == null ? "" : u.getSourcePlat())
            .element("thirdAdId", u.getThirdAdId() == null ? "" : u.getThirdAdId())
            .element("adSlotId", u.getAdSlotId() == null ? "" : u.getAdSlotId());
    }
}

使用方法:

 JsonConfig config=new JsonConfig();
            config.registerJsonBeanProcessor(Advert.class, new AdvertProcessor(1));
            List<Advert>list=null;
            JSONArray  ja=JSONArray.fromObject(list, config);
            Advert advert=null;
            JSONObject jo=JSONObject.fromObject(advert, config);

1.3 json2java

针对 {“id”:"","url":"","width":"","height":""}

定义对应java类

public class JsonPosterVO {
    private int id;
    
    private String url;
    
    private String height;
    
    private String width;
    
    public int getId() {
        return id;
    }
    
    public void setId(int id) {
        this.id = id;
    }
    
    public String getUrl() {
        return url;
    }
    
    public void setUrl(String url) {
        this.url = url;
    }
    
    public String getHeight() {
        return height;
    }
    
    public void setHeight(String height) {
        this.height = height;
    }
    
    public String getWidth() {
        return width;
    }
    
    public void setWidth(String width) {
        this.width = width;
    }
    
    
}

使用方法:

单个上述对象
JSONObject jo=JSONObject .fromObject(jsonStr);
JSONObject.toBean(programJsonObject, JsonPosterVO.class);

json数组
JsonArray ja=JsonArray.fromObject(jsonStr);
JsonPosterVO[]  arr=(JsonPosterVO[])JSONArray.toArray(ja,JsonPosterVO.class);

List<JsonPosterVO>poster作为一个对象的属性
Map<String, Class> mapClass = new HashMap<String, Class>();
 mapClass.put("poster", JsonPosterVO.class);
  JsonProgramVO[] array = (JsonProgramVO[])JSONArray.toArray(pArr, JsonProgramVO.class, mapClass);




  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值