问题描述

callback({"accessToken": "xxx", "url": "xxx", "status": "success"
})
calback({"errorCode": "21300007", "status": "fail", "errorMsg": "User not exist, or wrong password!"
})

Maven

        <!--JSON--><dependency><groupId>com.alibaba</groupId><artifactId>fastjson</artifactId><version>1.2.58</version></dependency>

解决方案

版本一

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;@Overridepublic 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——将JSONP返回的结果转化为Java对象相关推荐

  1. java不需要返回数据时_从Java方法返回时,BigDecimal不保持实际值

    我正在用 Java制作货币转换应用程序.其他一些很棒的StackOverflowians给了我建议读取BigDecimal,目的是替换double来解决任何精度问题. 我有两个方法系统;它从起始货币转 ...

  2. java调用sql返回list_Spring JdbcTemplate实现有java.sql.ResultSet结果集返回的存储过程调用 | 学步园...

    一.调用存储过程 方式一: /** * 方法功能说明:通过存储过程分页,获取分页信息以及查询记录(装在list中): * List.get(0)= hsTable; //存放分页信息(tableNam ...

  3. java 支付宝回调返回值,支付宝APP支付Java回调具体步骤

    /** * 支付宝异步请求通知 * * @param request * @return */ @RequestMapping(value = "async", method = ...

  4. java线程池返回线程状态_Java线程的不同状态

    java线程池返回线程状态 介绍 在Java中,线程可以具有状态. Thread.State枚举定义Java线程可以具有的不同状态. 该枚举定义了以下值– 新 可运行 已封锁 等候 TIMED_WAI ...

  5. Jackson通过反射将Json转化为java对象

    Jackson的功能比较强大,我们这里主要使用Data Binding的方式,来看看如何使用反射将json转化为java bean,先加入如下依赖: Jackson 的核心模块由三部分组成. jack ...

  6. json反射java对象_Jackson通过反射将Json转化为java对象

    Jackson的功能比较强大,我们这里主要使用Data Binding的方式,来看看如何使用反射将json转化为java bean,先加入如下依赖: Jackson 的核心模块由三部分组成. jack ...

  7. java 暂停等返回值在执行_java面试技巧(2)

    java面试试题及答案 以下是Java面试问题及答案: 1.简要介绍java程序的健壮性. 答:JAVA 程序会在编译和运行的时候自动的检测可能出现的错误,而且它是一种强类型语言,对于类型的检查很严格 ...

  8. Java调用存储过程返回数组

    Java调用存储过程: 结合SQL操作与存储过程 create procedure set_death_age(poet VARCHAR2, poet_age NUMBER) poet_id NUMB ...

  9. java接口返回类,Java接口和返回类型 - java

    考虑我有以下界面: public interface A { public void b(); } 但是我希望实现它的每个类对方法b()都有不同的返回类型. 例子: public class C { ...

最新文章

  1. 插入u盘计算机未响应,win7系统插入u盘死机怎么办|win7插入u盘无响应的解决方法...
  2. OpenJ_Bailian 4148 生理周期
  3. java分数怎么保存到文件_Java如何将控制台上的结果保存到文件
  4. ubuntu安装python-mysqldb
  5. MySQL跨机房集群方案_Mysql跨机房同步方案
  6. python维度扩展_在TensorFlow中实现矩阵维度扩展
  7. PHP从零开始--数据库
  8. 使用JBehave,Gradle和Jenkins的行为驱动开发(BDD)
  9. python实现手机号归属地相关信息查询
  10. 从上到下打印二叉树的三种题型
  11. 力排众议,自由软件之父 RMS 正式回归 FSF!
  12. 二分查找(java)
  13. MT6580 Android8.1调试移植费恩格尔指纹驱动
  14. iOS开发之实现方法链调用
  15. 【大数据实战项目一】数据下载以及工具软件的使用
  16. 区块链毕业设计中期检查表模板
  17. Word文档中快速插入分隔线的技巧_C#教程
  18. 小米盒子显示未连接电脑连接服务器,小米盒子不能连接电脑的原因与解决办法...
  19. 初级程序员应该怎么选电脑?来自从业5年维修工程师的建议
  20. uni-app 项目怎么运行到手机

热门文章

  1. ASP.NET MVC3 技术(二) WebGrid 的使用方法
  2. java坐标移动题目case_坐标移动
  3. python解初中题_用python解一道数独小题
  4. mysql ibatis xml配置 like_iBatis学习方法及入门总结
  5. (看这一篇就够了)基本数据类型的赋值与引用类型赋值的区别
  6. org.springframework.transaction.CannotCreateTransactionException: Could not open JDBC Connection for
  7. Java Web使用数据库连接池
  8. 第三轮316工程知识竞赛简讯_【资讯】第五届日本文化知识竞赛决赛
  9. python编码注释和平台注释_python注释是什么意思
  10. c语言尚未实现的虚拟函数,编译原理之学习 lua 1.1 笔记 (二) 函数调用与局部变量...