背景:
在调用京东万象实名认证互联网接口的时候,它返回的是json格式的字符串,我使用的是京东万象的身份证二要素实名认证
接口(https://wx.jdcloud.com/market/datas/5/11556),返回的json格式字符串示例如下图:
需要取出json格式字符串中的某些值,所以需要解析json字符串
步骤:
1、在pom.xml文件中导入阿里巴巴的json解析包fastjson的依赖
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>1.2.36</version>
</dependency>
2、编写后端代码
// 假设这就是返回的json格式的字符串
String jsonString = "{\n" +
" \"code\": \"10000\",\n" +
" \"charge\": false,\n" +
" \"remain\": 1305,\n" +
" \"msg\": \"查询成功\",\n" +
" \"result\": {\n" +
" \"error_code\": 0,\n" +
" \"reason\": \"成功\",\n" +
" \"result\": {\n" +
" \"realname\": \"乐天磊\",\n" +
" \"idcard\": \"350721197702134399\",\n" +
" \"isok\": true\n" +
" }\n" +
" }\n" +
"}";
//使用fastjson解析json格式的字符串为json对象
JSONObject jsonObject = JSONObject.parseObject(jsonString);
//获取通信标识code
String code = jsonObject.getString("code");
//判断通信是否成功
if (!StringUtils.equals("10000", code)) {
return Result.error("通信异常");
}
//获得业务处理结果,result中存储的也是json字符串
Boolean isok = jsonObject.getJSONObject("result").getJSONObject("result").getBoolean("isok");
if (!isok) {
return Result.error("真实姓名和身份证号码不匹配");
}
// 身份验证成功,进行其他操作
3、java后台解析xml格式字符串(地址:https://blog.csdn.net/qq_42449963/article/details/105395517)