今天通过restful 调用接口的时候,遇到这样的问题,通过接口返回的数据如下:

{
"code": 0,
"message": "成功",
"result": {
"count": 1
}
}

然后 需要获取 count后面的值,于是 通过json转化的方式:

 RestClient client = RestClients.createDefault();
String host = SystemProperties.getInstance().getProperty("****l");;
Integer strNum = 0;
String url = host + "/restful/biProxyService/article/count";
RestRequest request = new RestRequest(url);
request.addParam("circleId", circleId);
request.addParam("articleId",articleId);
try{
RestResponse<Object> response = client.post(request, Object.class);
logger.info("返回数据:" + response);
if(response.isSuccess()){
Object obj= response.getResult();
logger.info("obj:" + obj);
JSON json = (JSON)JSON.parse(obj);
JSONObject jsonObject = (JSONObject)json;
strNum = jsonObject.getJSONObject("result")==null?0:jsonObject.getJSONObject("result").getInteger("count");
logger.info("strNum");
}
}catch (Exception e){
logger.error("调用bi获取文章数据异常",e);
}
return strNum;

然后怎么都转不了,最后打印日志发现 response.getResult的结果是:

{code=0,message=成功,result={count:12}}

额 ,然后报包json转化异常了,因为正常的json格式应该是:

{code:0,message:成功,result:{count:12}}

最后想到了google的gson,通过

Gson gson = new Gson();

gson.toJson(obj)

转化为String对象,在通过fastjson转化 就好了。

完整代码:

  public Integer getArticleCount(String circleId,String articleId) {
RestClient client = RestClients.createDefault();
String host = SystemProperties.getInstance().getProperty("***");;
Integer strNum = 0;
String url = host + "/restful/biProxyService/article/count";
RestRequest request = new RestRequest(url);
request.addParam("circleId", circleId);
request.addParam("articleId",articleId);
try{
RestResponse<Object> response = client.post(request, Object.class);
logger.info("返回数据:" + response);
if(response.isSuccess()){
Object obj= response.getResult();
logger.info("obj:" + obj);
Gson gson = new Gson();
String str = gson.toJson(obj);
logger.info(str);
JSON json = (JSON)JSON.parse(str);
JSONObject jsonObject = (JSONObject)json;
strNum = jsonObject.getJSONObject("result")==null?0:jsonObject.getJSONObject("result").getInteger("count");
logger.info("strNum");
}
}catch (Exception e){
logger.error("调用bi获取文章数据异常",e);
}
return strNum;
}

json 对象里面含有 =的解决办法的更多相关文章

  1. Mybatis 关联对象不能输出的解决办法

    Mybatis 关联对象不能输出的解决办法 1.如图所示,现在进行查询的时候并没有得到来自另一张表address项 2.我们进行如下配置: (1).在mybatis-config.xml 文件中配置, ...

  2. DJANGO中,用QJUERY的AJAX的json返回中文乱码的解决办法

    和网上其它用JAVA或是PHP的实现不太一样, DJANGO中的解决办法如下: 后端样例: def render_to_json_response(context, **response_kwargs ...

  3. 关于在Django中Json无法序列化datetime的解决办法

    我们在网页设计时经常会在前端和后台进行交互,前端回传的方法可以时redirect一个地址加上显式的参数,第二个办法就是使用Ajax结构.那么在传到view函数中进行处理后是需要通过Json格式进行返回 ...

  4. Newtonsoft.json 二次引用出错解决办法

    一.一般在C# 项目中二次引用会出现如下错误: 解决办法:用编辑器打开项目下的文件(*.csproj),可以找到在这个文件中,Newtonsoft.Json的引用,删掉引用,然后在项目中重新引用就可以 ...

  5. .NET Core 3.0 System.Text.Json 和 Newtonsoft.Json 行为不一致问题及解决办法

    行为不一致 .NET Core 3.0 新出了个内置的 JSON 库, 全名叫做尼古拉斯 System.Text.Json - 性能更高占用内存更少这都不是事... 对我来说, 很多或大或小的项目能少 ...

  6. spring oauth2获取token时WARN:Could not decode JSON for additional information: BaseClientDetails解决办法

    错误描述 简述:oauth_client_details表中additional_information字段默认为null,ClientDetails实体类中类型为Map<String,Obje ...

  7. Maven json包找不到解决办法

    在Maven中央仓库找到Maven的jar <dependency> <groupId>net.sf.json-lib</groupId> <artifact ...

  8. IE浏览器中Image对象onload失效的解决办法

    作为WEB设计者,为了在网页展示上加强用户体验,经常会利用图象载入显示状态方法,这自然需要Image对象的onload事件. 在firefox浏览器下完成开发后,可是在IE浏览器中进行调试总不能被调用 ...

  9. Spring MVC Rest服务 返回json报406错误的解决办法

    @ResponseBody & @RequestBody @RequestBody 将 HTTP 请求正文插入方法中,使用适合的HttpMessageConverter将请求体写入某个对象. ...

随机推荐

  1. 【实战】Tomcat管理后台Getshell

    一.制作war包 1.xiaoma.jsp压缩成xiaoma.zip格式,然后修改为xiaoma.war 2.修仙之百度大法 二.部署war包(选择文件,上传即可,不啰嗦啦) 三.C刀连接:http: ...

  2. hdu-1277--字典树坑题

    hdu-1227 字典树,坑题!!当字典树练手 Problem Description 我们大家经常用google检索信息,但是检索信息的程序是很困难编写的:现在请你编写一个简单的全文检索程序. 问题 ...

  3. HTML5 表单 中

    input 属性 autofocus 页面加载时自动获得焦点 required   非空字段输入框 placeholder 提供一种提示(hint),输入域为空时显示. pattern 规定验证inp ...

  4. subset II

    Subsets II Given a collection of integers that might contain duplicates, nums, return all possible s ...

  5. svn 改英文

  6. R语言数据重塑cbind+rbind+merge+ melt+cast

    R语言中的数据重塑是关于变化的数据分为行和列的方式.大多数R地数据处理的时候是通过将输入的数据作为一个数据帧进行.这是很容易提取一个数据帧的行和列数据,但在某些情况,当我们需要的数据帧的格式是不同的来 ...

  7. 实现MySQL数据库的实时备份

    实现MySQL数据库的实时备份 使用MySQL Replication 吴剑 2018-08-03 原创文章,转载必需注明出处:http://www.cnblogs.com/wu-jian 吴剑 ht ...

  8. 【angular5项目积累总结】遇到的一些问题以及解决办法

    1.项目中字符串特别是\r\n,替换成br之后,在页面换行无法生效? 答:绑定元素 innerHTML. <div class="panel-body" [innerHTML ...

  9. 使用webpack loader加载器

    了解webpack请移步webpack初识! 什么是loader loaders 用于转换应用程序的资源文件,他们是运行在nodejs下的函数 使用参数来获取一个资源的来源并且返回一个新的来源(资源的 ...

  10. 第8章 scrapy进阶开发(2)

    8-4 selenium集成到scrapy中 其实也没什么好说的直接上代码 这是在middlewares.py中定义的一个class: from selenium.common.exceptions ...