今天通过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. e的理解

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

  2. elastic-job动态添加定时任务

    在elastic-job的使用过程中,我们会遇到动态添加定时任务的时候,但是官网上面并没有对这块内容进行说明.按照我的理解以及官网上面elastic-job的框架图,ej的定时任务其实是存储在zook ...

  3. ACCESS 手工注入

    ACCESS的注入,基本是死的.思路很简单,基本都可以工具解决.上代码: 1.判断有无注入点' and 1=1 and 1=22.猜表一般的表的名称无非是admin adminuser user pa ...

  4. PHP在 win7 64位 旗舰版 报错 Call to undefined function curl_init()

    代码在ubuntu下无缝运行OK 转到我的win7 64位 期间 学习机上 报错: Call to undefined function curl_init() 因为用到curl 远程抓取数据. 所以 ...

  5. AngularJs双向绑定详解

    双向绑定的三个重要方法: $scope.$apply() $scope.$digest() $scope.$watch() 一.$scope.$watch() 我理解的$watch就是将对某个数据的监 ...

  6. jQuery $(document).ready()和JavaScript window.onload()事件的区别

    一. 在网上查了一下,发现$(document).ready()是在DOM树加载完成时触发,而window.onload()则是在整个页面全部加载完成时触发.下面是一些验证. var start=+n ...

  7. InnoDB存储引擎的表空间文件,重做日志文件

    存储引擎文件:因为MySQL表存储引擎的关系,每个存储引擎都会有自己的文件来保存各种数据.这些存储引擎真正存储了数据和索引等数据. 表空间文件 InnoDB存储引擎在存储设计上模仿了Oracle,将存 ...

  8. nginx 反向代理https

    nginx 反向代理https   原来我用vertx创建了一个https apiserver,想着用nginx反向代理一下.证书是阿里云上免费一年的. 后来发现nginx要反向代理https自己也必 ...

  9. IOS TableView实现省市联动

    之前用UIPickerView实现了省市联动,上个月网友让用UITableView给他实现了下.今天也把这些贴出来. // // ViewController.m // doubleTable // ...

  10. C++学习笔记1(Windows程序运行原理及程序编写流程)

    窗口产生过程,句柄原理,消息队列,回调函数,窗口关闭与应用程序退出的工作关系,使用VC++的若干小技巧,stdcall与Lessonecl调用规范的比较,初学者常犯错误及注意事项.以下是应用程序与操作 ...