1. WADE4.0 的 IData, IDataset 格式串兼容性使用说明

    1. 格式串说明

      WADE4:{"A":"a","B":"b","C":[{"A":"a","B":"b"}]}

      WADE3:{A=["a"], B=["b"], C=[{A=["a"], B=["b"]}]}

      Java 示例代码:

      IData data = new DataMap();
      data.put("A", "a");
      data.put("B", "b");
      
      IDataset ds = new DatasetList();
      IData data1 = new DataMap();
      data1.put("A", "a");
      data1.put("B", "b");
      ds.add(data1);
      
      data.put("C", ds);
      
    2. WADE4 的 IData, IDataset 与 JSON 的转换

      使用场景1:信控调 WADE4 的服务(HTTP+JSON)

      使用场景2:WEB需要将 IData, IDataset 传到 HTML

      转换方法

      IData, IDataset 转换成 JSON:

      IData.toString();
      IDataset.toString();
      //输出示例:{"A":"a","B":"b","C":[{"A":"a","B":"b"}]}
      

      JSON 转换成 IData, IDataset:

      IData data = new DataMap(json);
      IDataset ds = new DatasetList(json);
      
    3. WADE4 与 WADE3 的串格式互转

      使用场景1:WADE4 调一级 BOSS 接口

      使用场景2:WADE4 提供给 WADE3 的接口

      转换方法

      WADE4 转 WADE3 格式的串:

      String data = Wade3DataTran.toWadeString(idata);
      String dataset = Wade3DataTran.toWadeString(idataset);
      

      WADE3 格式的串转 WADE4:

      // IData 转换
      Map map = Wade3DataTran.strToMap(wade3str);
      IData data4 = Wade3DataTran.wade3To4DataMap(map);
      
      //IDataset转换
      List list = Wade3DataTran.strToList(wade3str));
      IDataset ds4 = Wade3DataTran.wade3To4Dataset(list);
      
    4. WADE4 服务调用的格式说明

      WADE4为了兼容WADE3的服务,对格式做了兼容处理,但不支持WADE3的HTTP+Hessian的调用方式

      格式控制参数及使用场景

      采用HTTP头的ContentType参数控制数据格式,具体说明及使用场景如下:

      1、text/plain:服务端只做doHead处理。场景:用来返回服务列表;

      2、binary/hessian-stream:使用WADE4的Hessian序列化格式。场景:WADE4服务调用(ServiceFactory.call);

      3、binary/json-stream:使用JSON格式,返回数据的第一行里包括X_TRADE_XXX信息。场景:信控C语言调CRM接口;

      4、binary/json2-stream:使用JSON格式,返回的数据分为head和data两部分。场景:Mobile框架调WADE4接口(ServiceClient.call);

      5、binary/java-stream:使用Java的序列化格式。场景:无;

      6、application/x-www-form-urlencoded:使用WADE3的串格式。场景:WADE3及一级BOSS调WADE4接口(Wade3ClientRequest.request);