zoukankan      html  css  js  c++  java
  • 【明哥报错簿】之json转换报错---net.sf.ezmorph.bean.MorphDynaBean cannot be cast to XXXDO

    简单的json和bean转换直接用:

    public static void main(String[] args) {
            String s = "{'request': [{'orderCode': 'HOJY20170226000074-O-0','cancelReason': '没有原因'},{'orderCode': 'HOJY20170226000074-O-1','cancelReason': '有原因'}]}";
            JSONObject jb = JSONObject.fromObject(s);  
            JSONArray ja = jb.getJSONArray("request");  
            String orderCode = ja.getJSONObject(1).getString("orderCode");
            String cancelReason = ja.getJSONObject(1).getString("cancelReason");
            System.out.println(cancelReason+"-----"+orderCode);
        }
    输出结果:有原因-----HOJY20170226000074-O-1

     --------------------------------------复杂模式,对象里面有list,比如ReturnOrderDO里面有属性A,B,属性B里面的属性是List<C>,这样直接转就不行报错了,需要用classmap------------------------------------------------------

      public static void main(String[] args) {
            String s = "{'request': [{'returnOrder': {'returnOrderCode': 'RK131','warehouseCode': 'SunEee01'},'orderLines': {'orderLine':[{'ownerCode': 'ownerCode01','itemCode':'itemCode01','planQty': 100},{'ownerCode': 'ownerCode02','itemCode':'itemCode02','planQty': 100}]}}]}";
    
            JSONObject jb = JSONObject.fromObject(s); 
            JSONArray ja = jb.getJSONArray("request"); 
            List<ReturnOrderDO> list = JSONArray.toList(ja,ReturnOrderDO.class);    
    
            for(ReturnOrderDO one:list){
            Map<String, Class> classMap = new HashMap<String, Class>(); 
            classMap.put("orderLine", OrderLine.class); 
    
            ReturnOrderDO ss = (ReturnOrderDO) JSONObject.toBean(JSONObject.fromObject(one),ReturnOrderDO.class,classMap);
            System.out.println(ss.getOrderLines().getOrderLine().get(0).getOwnerCode());
        }}

     

  • 相关阅读:
    体温单时间控件
    搭建Android 开发环境(精华)
    即时通讯
    车牌识别系统
    JSON 生成 C# Model
    Arduino 视频教程
    .Net主线程扑捉子线程中的异常
    用C#操作IIS创建虚拟目录和网站
    C#中简单的this与get的用法(string,decimal)
    c#读取Excel数据到Gridview
  • 原文地址:https://www.cnblogs.com/dflmg/p/6933811.html
Copyright © 2011-2022 走看看