API 响应处理
调用第三方 API 时,使用 JSONMap 解析嵌套 JSON 响应。
基本用法
String response = httpClient.get("https://api.example.com/user/info");
JSONMap data = new JSONMap(response);
// 深层取值
Integer code = data.getInt("code");
String userName = data.getStr("data.user.name");
String avatar = data.getStr("data.user.profile.avatar", "default.png");
List<String> roles = data.getList("data.user.roles", String.class);
案例
微信 API
String response = wechatApi.getUserInfo(openid);
JSONMap result = new JSONMap(response);
if (result.getInt("errcode", 0) != 0) {
throw new BusinessException(result.getStr("errmsg"));
}
String nickname = result.getStr("nickname");
String headimgurl = result.getStr("headimgurl");
Integer sex = result.getInt("sex");
支付回调
@PostMapping("/alipay/notify")
public String notify(@RequestBody String notifyData) {
JSONMap data = new JSONMap(notifyData);
String outTradeNo = data.getStr("out_trade_no");
String tradeStatus = data.getStr("trade_status");
Double totalAmount = data.getDouble("total_amount");
orderService.updateStatus(outTradeNo, tradeStatus, totalAmount);
return "success";
}