1. 程式人生 > >java解析返回的json資料,使用fastjson

java解析返回的json資料,使用fastjson

第一種: 使用實體物件和json對映.使用gsonformat外掛(快捷生成實體類)

String result = HttpRequestUtil.doPost(url, params);

HlPreviewResultReturn previewResultReturn = JSON.parseObject(result, HlPreviewResultReturn.class);

-------------------------------------------------------------------------------------------------------

public class HlPreviewResultReturn {

@JSONField(name = "Content")

private HlPreviewContentResult previewContentResult;

@JSONField(name = "Status")

private int status;

@JSONField(name = "Message")

private String message;

}

-----------------------------------------------------------------------------------------------------

public class HlPreviewContentResult {

@JSONField(name = "RejectReasons")

private List<HlPreviewRefuse> previewRefuseList;

@JSONField(name = "RuleResultDic")

private PreviewReturn previewReturn;

@JSONField(name = "MonthlyInterestRate")

private Double monthlyInterestRate;

@JSONField(name = "FormalitiesRate")

private Double formalitiesRate;

@JSONField(name = "ExamineLoanMoney")

private Double examineLoanMoney;

@JSONField(name = "MonthlyServiceRate")

private Double monthlyServiceRate;

@JSONField(name = "CustomerRating")

private String customerRating;

@JSONField(name = "SexScore")

private Integer sexScore;

}

-------------------------------------------------------------------------------------------------------

public class HlPreviewRefuse {

private Long orderPreviewId;

private String RuleName;

private String RuleDesc;

}

public class PreviewReturn {

@JSONField(name = "*審批金額")

private String approvalAmountCN;

@JSONField(name = "*手續費率")

private String formalitiesRateCN;

@JSONField(name = "*月利率")

private String monthRateCN;

@JSONField(name = "*月服務費率")

private String monthlyServiceRateCN;

@JSONField(name = "*客戶評級")

private String gradeCN;

@JSONField(name = "客戶分類結果")

private String customerGrade;

@JSONField(name = "*是否保底")

private String ensureCN;

@JSONField(name = "*是否需要補充借據")

private String isNeedIou;

}

--------------------------------------------------------------------------------------------------

第二種:使用fastjson直接解析

FastJson是一個Json處理工具包,包括“序列化”和“反序列化”兩部分,速度快,

Fastjson API入口類是com.alibaba.fastjson.JSON,常用的序列化操作都可以在JSON類上的靜態方法直接完成:

public static final Object parse(String text); // 把JSON文字parse為JSONObject或者JSONArray

public static final JSONObject parseObject(String text); // 把JSON文字parse成JSONObject

public static final T parseObject(String text, Class clazz); // 把JSON文字parse為JavaBean

public static final JSONArray parseArray(String text); // 把JSON文字parse成JSONArray

public static final List parseArray(String text, Class clazz); //把JSON文字parse成JavaBean集合

public static final String toJSONString(Object object); // 將JavaBean序列化為JSON文字

public static final String toJSONString(Object object, boolean prettyFormat); // 將JavaBean序列化為帶格式的JSON文字

public static final Object toJSON(Object javaObject); 將JavaBean轉換為JSONObject或者JSONArray。

public IdentityCardResult parseIdcardByYitu(String idcardImageBase64, int idcardType) {

IdentityCardResult identityCardResult = new IdentityCardResult();

JSONObject jsonObject = new JSONObject();

jsonObject.put("idbase64", idcardImageBase64);

jsonObject.put("imagetype", 2);

jsonObject.put("bustype", "DAIDAIKANO2O");

try {

String result = HttpRequestUtil.doPost(yituOcrUrl, jsonObject.toJSONString());

JSONObject resultObject = JSON.parseObject(result);

int state = resultObject.getIntValue("FacePairState");

if (state != 1000) {

throw new IdcardParsingFailedException("身份證照片解析失敗: " + resultObject.getString("FacePairDes"));

}

String ocrResult = resultObject.getString("OcrResult");

if (StringUtils.isEmpty(ocrResult)) {

throw new IdcardParsingFailedException("身份證照片解析失敗");

}

String idcardResult = JSON.parseObject(ocrResult).getString("idcard_ocr_result");

JSONObject idcard = JSON.parseObject(idcardResult);

String address = idcard.getString("address");

String birthday = idcard.getString("birthday");

String idcardNo = idcard.getString("citizen_id");

String sex = idcard.getString("gender");

String name = idcard.getString("name");

String nation = idcard.getString("nation");

String agency = idcard.getString("agency");

String valid_date_begin = idcard.getString("valid_date_begin");

String valid_date_end = idcard.getString("valid_date_end");

IdentityCardInfo cardInfo = new IdentityCardInfo();

cardInfo.setAddress(address);

cardInfo.setBirthday(birthday);

cardInfo.setCardNo(idcardNo);

cardInfo.setSex(sex);

cardInfo.setName(name);

cardInfo.setFolk(nation);

cardInfo.setIssueAuthority(agency);

cardInfo.setValidPeriod(valid_date_begin + "-" + valid_date_end);

identityCardResult.setData(cardInfo);

identityCardResult.setSuccess(true);

} catch (Exception e) {

log.error("伊圖 - OCR身份證解析失敗: " + e.getMessage(), e);

identityCardResult.setSuccess(false);

identityCardResult.setDescription(e.getMessage());

}

return identityCardResult;

}

-----------------------------------------------------------------------------------------------------

public class IdentityCardResult {

private boolean success;

private String description;

private IdentityCardInfo data;

}

相關推薦

java解析複雜json資料

java如何解析複雜的json資料 關於json處理的包有好幾個,比如jackson、Gson、Fastjson。Gson是谷歌做的,功能強大;Fastjson是阿里巴巴做的,效能更快。具體用哪個,開心就好。我這裡兩個都沒用,用的是java的一個類庫—json-

Java解析(讀取)Json資料

以前看過書上說,XML是web service間傳輸資訊的標準格式吧,就看了看XML。最近在做個網站,又說是有了JSON,第一回聽說就看了看,總結總結一下。 1.JSON介紹   JSON比XML簡單,主要體現在傳輸相同資訊的情況下,檔案的大小不同。   JSON只用於傳輸資訊,

java 後臺返回JSON資料 前端顯示顯示404 or 500

舉例: 1)後端返回JSON資料: Map<String, Object> map = salesysActivityService.getSalesysActivityByPage(keys, pageSize, pageIndex, 1); return J

java方法返回json資料

一:方法 /** * 返回json * @param request * @param response * @param session */ @RequestMapping("/returnjson") public void returnjso

Java解析(讀取)Json資料{}、[{}]

以前看過書上說,XML是web service間傳輸資訊的標準格式吧,就看了看XML。最近在做個網站,又說是有了JSON,第一回聽說就看了看,總結總結一下。 1.JSON介紹   JSON比XML簡單,主要體現在傳輸相同資訊的情況下,檔案的大小不同。   JSON只用於傳輸資訊,XML還可以用於配置檔案的使

java 後臺返回json資料給前臺

第一步:新建一個JsonBinder.java類,程式碼如下: import java.io.IOException; import java.text.DateFormat; import java.text.SimpleDateFormat; import java.u

java解析返回json資料,使用fastjson

第一種: 使用實體物件和json對映.使用gsonformat外掛(快捷生成實體類) String result = HttpRequestUtil.doPost(url, params); HlPreviewResultReturn previewResultRet

JAVA-使用FastJson解析複雜JSON資料

FastJson解析JSON的核心就是把json資料直接轉換成物件,讓解析複雜的json資料變得非常簡單,較大的降低了出錯的可能性。 使用方法: 1.建立JSON資料物件,所有的json鍵值都使用key作為變數名,並且實現set,get函式。 下面試簡單的demo測試複雜的

Java後臺返回複雜資料、大資料給前端解決辦法(返回json資料分類簡化前段操作)

背景分析: 面對當前多種的業務需求和雜亂無章的資料堆放,Java後臺處理變得尤為重要。對於資訊系統開發而言,歸根到底是對資料的分類與處理。通過從伺服器獲取資料,客戶給出需求,形成怎樣的表格,多樣化的靜態圖和動態圖,各種各樣資原始檔,這些需求都不是簡單的從資料庫中取出來就可以直接使用的,往

後臺返回json資料給前臺和前臺解析json資料

後臺返回json資料和前臺解析json資料 一般來說web開發中,前臺採用json資料提交給後臺,後臺處理資料以後返回json資料給前臺,前臺解析json,顯示資料。 總而言之,前後臺直接交換的資料格式最常用的非json資料無疑了。 這裡就總結一些json資料的前後臺處理方式。

java後臺接收json資料,報錯com.alibaba.fastjson.JSONObject cannot be cast to xxx

  從前臺接收json封裝的list資料,在後臺接收時一直報錯,com.alibaba.fastjson.JSONObject cannot be cast to xxx,   使用這種方式接收可以接收 1 @RequestMapping(value = "/insertUser", method

Java傳送POST請求,引數為JSON格式,並接收返回JSON資料

/** * 傳送post請求 * @param url 路徑 * @param jsonObject 引數(json型別) * @param encoding 編碼格式 * @return * @throws P

API返回 json資料解析和取值

有的API返回的資料比較少,適合用json來傳,後臺與前臺的資料交換也經常用 json來傳。我們簡單看個json的文件: 現在我們試著提取這個json資料包裡的“nickname”和“headim

Java 通過HttpClient Post方式提交json,並從服務端返回json資料

直接上程式碼吧,和前面幾篇文章都差不多 java程式碼: package PostPager; import java.io.IOException; import java.io.InputStream; import java.io.Output

java 呼叫webservice 介面 解析返回json

public static void main(String[] args)throws ServiceException, MalformedURLException, RemoteExceptio

關於java 傳送http json資料格式請求時,伺服器端如何接收json資料解析

一般情況下,傳送http請求時content-tye是application/x-www-form-urlencoded格式,而這樣的格式會以鍵值對的形似被封裝,至於是在瀏覽器傳送的時候被封裝的還是在伺服器端被封裝的我還不太清楚。但是我的猜測是在瀏覽器傳送請求的時候在客戶端

java 通過傳送json,post請求,返回json資料

import java.io.BufferedReader; import java.io.DataOutputStream; import java.io.InputStream; import java.io.InputStreamReader; import java

java返回json資料

在控制器中(servlet或者action)先呼叫底層方法得到一個集合List.比如這個集合叫做testList,然後執行下面的程式碼: response.getWriter().print

ajax返回json資料,對其中日期的解析

JS 對其格式化 方法如下 function ChangeDateFormat(d){ //將時間戳轉為int型別,構造Date型別 var date = new Date(parse

spring boot最新教程(四):返回json資料以及整合fastjson的使用

一  利用spring boot自帶的包Jackson來解析json資料我們在編寫介面的時候,時常會有需求返回json資料,那麼在spring boot應該怎麼操作呢?主要是在class中加入註解@RestController。關於@RestController請參考我的博文