今天通过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. [转] ELK 之 Logstash

    [From] https://blog.csdn.net/iguyue/article/details/77006201 ELK 之 Logstash 简介: ELK 之 LogstashLogsta ...

  2. e的理解

    1. e是一个重要的常数,但是我一直不知道,它的真正含义是什么. 它不像π.大家都知道,π代表了圆的周长与直径之比3.14159,可是如果我问你,e代表了什么.你能回答吗? 维基百科说: " ...

  3. 【文档】四、Mysql Binlog事件含义详解

    下面对binlog中事件做个简单说明: UNKNOWN_EVENT 这个事件类型应该永远不会出现.它从不会写入binlog中.如果binlog中的事件没法被识别成其他已知事件,他被当做UNKNOWN_ ...

  4. maevn HelloWorld 基本命令

    总结: Mvn clean compile:编译主代码 Mvn clean test:执行测试代码 Mvn clean package:打包 Mvn clean install: 安装到本地仓库 执行 ...

  5. shiro学习笔记_0700_整合ssm

    现在最流行的框架就是ssm,学到最后,shiro在实际开发中,也就的整合框架.首先spring是少不了的,shiro也提供了和spring的整合包. 首先,新建maven项目: maven依赖: &l ...

  6. 算法之经典排序-冒泡排序(bubble sort)

    冒泡排序 它重复地走访过要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来.走访数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完成. 这个算法的名字由来是因为越大的元 ...

  7. WPF使用Path画圆的一个示例代码

    <Path Fill="red" Data="M 0,0 A 20,20 45 1 1 0,1 Z"/> 1. Fill是指Path的填充颜色 2. ...

  8. vue仿京东省市区三级联动选择组件

    工作中需要一个盒京东购物车地址选择相似的一个省市区三级联动选择组件,google查了下都是下拉框形式的,于是自己写了一个,希望对使用vue开发项目的朋友有帮助,显示效果如下:使用vue2.0开发 ht ...

  9. Idea软件Vim插件问题

    人家说用webstorm是纯前端,用Idea是java+前端,好,那就用Idea,装上试试,全选所有插件安装,奇迹出现了,选中一行代码,backspace,删不了,我的天,好吧,复制粘贴的快捷键也不行 ...

  10. [译]用R语言做挖掘数据《四》

    回归 一.实验说明 1. 环境登录 无需密码自动登录,系统用户名shiyanlou,密码shiyanlou 2. 环境介绍 本实验环境采用带桌面的Ubuntu Linux环境,实验中会用到程序: 1. ...