SDET json解析与打包

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SDET json解析与打包相关的知识,希望对你有一定的参考价值。

part 1 建立DataStream类

  1. package com.huaqin.hat;
  2. /**
  3. * creator:perfe wang
  4. * time:2016/6/28
  5. * description:数据类,特用于json解析和打包,属性为json对象的key,属性值为json的内部类
  6. * 其内部类用于规定其属性的传递格式
  7. */
  8. import java.util.ArrayList;
  9. import java.util.List;
  10. publicclassDataStream{
  11. publicint TYPE =-1;
  12. publicList<Device> devices_list =newArrayList<Device>();
  13. publicList<CaseSend> case_send_list =newArrayList<CaseSend>();
  14. publicList<CaseReceive> case_receive_list =newArrayList<CaseReceive>();
  15. publicstaticclassDevice{
  16. publicint id =-1;
  17. publicString name ="";
  18. publicString sim1 ="";
  19. publicString sim2 ="";
  20. publicint sdcard =-1;
  21. publicint state =-1;
  22. publicint waiting_case_count =-1;
  23. publicString configversion ="";
  24. publicint deviceId =-1;
  25. }
  26. publicstaticclassCaseSend{
  27. publicString name ="";
  28. publicint type =-1;
  29. publiclong jarId =-1;
  30. publiclong caseId =-1;
  31. publicString address ="";
  32. publicint caseStastusId =-1;
  33. publicint planId =-1;
  34. publicString sim1 ="";
  35. publicString sim2 ="";
  36. publicint sdcard =-1;
  37. }
  38. publicstaticclassCaseReceive{
  39. publicString case_stastus ="";
  40. publicString logAdrr ="";
  41. publicint caseStastusId =-1;
  42. publicint planId =-1;
  43. publicString startTime ="";
  44. publicString endTime ="";
  45. }
  46. }
part 2 建立json解析工具
  1. package com.huaqin.hat;
  2. /**
  3. * creator:perfe wang
  4. * time:2016/6/28
  5. * description:基于DataStream的json解析工具类
  6. * receive方法接受json对象解析成DataStream对象并返回
  7. * send方法接受DataStream对象打包成json字符串并返回
  8. * caseJsonUtil接受原始的DbAdapter.Case.Object对象解析成CaseSend对象并返回
  9. */
  10. import net.sf.json.JSONObject;
  11. import com.google.gson.Gson;
  12. import com.google.gson.reflect.TypeToken;
  13. import com.huaqin.hat.DataStream.CaseSend;
  14. publicclassDataJsonUtil{
  15. publicDataStream receive(String data){
  16. Gson gson =newGson();
  17. java.lang.reflect.Type type =newTypeToken<DataStream>(){
  18. }.getType();
  19. DataStream data_receive = gson.fromJson(data, type);
  20. return data_receive;
  21. }
  22. publicString send(DataStream dataBean){
  23. Gson gson =newGson();
  24. String json = gson.toJson(dataBean);
  25. return json;
  26. }
  27. publicCaseSend caseJsonUtil(DbAdapter.Case.Object caseObject){
  28. CaseSend caseSend =newCaseSend();
  29. caseSend.name = caseObject.name;
  30. caseSend.type = caseObject.type;
  31. caseSend.address = caseObject.address;
  32. caseSend.jarId = caseObject.jarId;
  33. caseSend.caseId = caseObject.caseId;
  34. String json = caseObject.description;
  35. JSONObject jsonObject =JSONObject.fromObject(json);
  36. caseSend.sdcard = jsonObject.getInt("sdcard");
  37. caseSend.sim1 = jsonObject.getString("sim1");
  38. caseSend.sim2 = jsonObject.getString("sim2");
  39. return caseSend;
  40. }
  41. }
part 3 自己实现自测试
  1. package com.huaqin.hat;
  2. import java.util.List;
  3. import com.huaqin.hat.DataStream.Device;
  4. publicclassJsonTest{
  5. /**
  6. * @param args
  7. */
  8. publicstaticvoid main(String[] args){
  9. // json工具类
  10. DataJsonUtil jsonUtil =newDataJsonUtil();
  11. // 接受的data数据
  12. // 发送的data数据
  13. }
 





以上是关于SDET json解析与打包的主要内容,如果未能解决你的问题,请参考以下文章

解析:JSON 文本没有以数组或对象开头,并且允许未设置片段的选项

rpc框架yar之源码解析- 打包(json, msgpack, serialize)

使用 json rereiver php mysql 在片段中填充列表视图

微信小程序json数据如何处理?

ios - Heroku 和 MongoDb 上的自定义解析服务器错误 3080:JSON 文本没有以数组或对象开头,并且允许未设置片段的选项

java与JSON