Java反序列化List小記


Java環境:

一.從字符串反序列化為List

OCR系統返回的字符串格式為:

{"code": "1", "data": [[{"page_id": "1", "field_name": "\u4e00\u6bb5", "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);
    }

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM