Java——将JSONP返回的结果转化为Java对象

问题描述

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

 

你可能感兴趣的:(#,JAVA,JAVA,JSONP)