问题描述
callback({
"accessToken": "xxx",
"url": "xxx",
"status": "success"
})
calback({
"errorCode": "21300007",
"status": "fail",
"errorMsg": "User not exist, or wrong password!"
})
Maven
com.alibaba
fastjson
1.2.58
解决方案
版本一
package com.tntxia.geography.util;
import java.util.Map;
import com.alibaba.fastjson.JSON;
public class JSONPParser {
public static Map parseJSONP(String jsonp){
int startIndex = jsonp.indexOf("(");
int endIndex = jsonp.lastIndexOf(")");
String json = jsonp.substring(startIndex+1, endIndex);
System.out.println(json);
return JSON.parseObject(json);
}
public static void main(String[] args){
Map map = parseJSONP("jsonp_test({})");
}
}
版本二
package com.tntxia.geography.util;
import java.util.Map;
import com.alibaba.fastjson.JSON;
public class JSONPParser {
public void Map parseJSONP(String jsonp){
int startIndex = jsonp.indexOf("(");
int endIndex = jsonp.lastIndexOf(")");
String json = jsonp.substring(startIndex+1, endIndex);
System.out.println(json);
CallBack callBack = JSONObject.parseObject(json, CallBack.class);
System.out.println(callBack);
}
public static void main(String[] args){
parseJSONP("jsonp_test({})");
}
}
CallBack类
package cn.edu.zstu.myzstu.spyder.ezstu;
/**
* @Author ShenTuZhiGang
* @Version 1.0.0
* @Date 2020-07-12 15:28
*/
class CallBack{
public String getErrorCode() {
return errorCode;
}
public void setErrorCode(String errorCode) {
this.errorCode = errorCode;
}
private String errorCode;
private String status;
private String errorMsg;
private String accessToken;
@Override
public String toString() {
return "CallBack{" +
"errorCode='" + errorCode + '\'' +
", status='" + status + '\'' +
", errorMsg='" + errorMsg + '\'' +
", accessToken='" + accessToken + '\'' +
", url='" + url + '\'' +
'}';
}
public String getAccessToken() {
return accessToken;
}
public void setAccessToken(String accessToken) {
this.accessToken = accessToken;
}
public String getUrl() {
return url;
}
public void setUrl(String url) {
this.url = url;
}
private String url;
public String getStatus() {
return status;
}
public void setStatus(String status) {
this.status = status;
}
public String getErrorMsg() {
return errorMsg;
}
public void setErrorMsg(String errorMsg) {
this.errorMsg = errorMsg;
}
}
参考文章
https://blog.csdn.net/tntxia/article/details/84880544
https://vimsky.com/examples/detail/java-class-org.codehaus.jackson.map.util.JSONPObject.html