zoukankan      html  css  js  c++  java
  • Java反序列化List小记

    Java环境:

    一.从字符串反序列化为List

    OCR系统返回的字符串格式为:

    {"code": "1", "data": [[{"page_id": "1", "field_name": "u4e00u6bb5", "field_id": 1, "slice_name": "slice_0.png", "text": "320"}]], "message": ""}

    怎样反序列化呢?方法如下:

    String body = "...";
    JSONObject jsonObject = JSON.parseObject(body);

    然后,判断code是否正常返回:

    String result = jsonObject.get("code").toString();
      if (result.equals("1")) {
    
          String dataString = jsonObject.get("data").toString();
          dataString = dataString.substring(1,dataString.length()-1);
    
          JSONArray objects = JSONArray.parseArray(dataString);
          List<ParseResult> ocrParseResults = objects.toJavaList(ParseResult.class);
    }

    而ParseResult类就是你自定义的业务实体类,这样既可!

    引用所需为:

    import cn.hutool.http.HttpRequest;
    import com.alibaba.fastjson.JSON;
    import com.alibaba.fastjson.JSONArray;
    import com.alibaba.fastjson.JSONObject;

     二.从Map反序列化为List

    需要解析的参数:

    @RequestBody Map<String, Object> infoMap

    方法如下:

    List<Map<String, Object>> processRecords = (List<Map<String, Object>>) infoMap.get("processRecords");
    
    for (int i = 0; i < processRecords.size(); i++) {
          List<ProcessRecord> processRecordList = (List<ProcessRecord>) processRecords.get(i).get("RecordList");
          Object processRecordListJson = JSON.toJSON(processRecordList);
          JSONArray objects = JSONArray.parseArray(processRecordListJson.toString());
          List<Record> ocrParseResults = objects.toJavaList(Record.class);
        }

    文章出处:www.cnblogs.com/jizhong

    本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接。否则保留追究法律责任的权利。

  • 相关阅读:
    ArrayList和HashTable妙用一
    面向过程,面向对象的深入理解一
    jquery中限制部分字段不能输入
    MySql用int存储时间
    android绑定sqlite数据库与程序一起发布
    extjs 4和jquery整合
    jQuery.support 的实现方式
    常用JavaScripts方法
    SVN错误信息大全
    android封装的menu自定义菜单列表
  • 原文地址:https://www.cnblogs.com/jizhong/p/15246332.html
Copyright © 2011-2022 走看看