接口返回值结果转换成JSON
接口返回值结果转换成JSON,具体的方法如下:
public static String GetJsonValue(String result,int index,String key){
int indexloc,indexkey;
String newstr;
indexloc=result.indexOf("[");
indexkey=result.indexOf(key);
//判断Data域的内容
if (( indexloc>indexkey || indexloc==-1) & index==0){
JSONObject jsonObj = JSONObject.fromObject(result);
return jsonObj.getString(key);
}
else{
newstr=GetNPro(result,index);
return GetJsonValue(newstr,0,key);
} } public static String GetNPro(String str,int n){
Matcher slashMatcher = Pattern.compile("\\{").matcher(str);
int mIdx = 0;
while(slashMatcher.find()) {
if(mIdx ==n){
break;
}
mIdx++;
}
str=str.substring(slashMatcher.start(),str.length());
return str.substring(0, str.indexOf("}")+1);
}
通过上面的两个函数,我们可以将字符串转化成Json字符串,并能通过关键字来提取对应数据。
如果要提取的数据是第一层里面的,可以直接提取,如:GetJsonValue (jresult,0,”error”);
如果要提出的数据在data中或是更深的json中,则需要指示是第几个数据了,数据以1开始计数,
如:GetJsonValue(jresult,2,”name”) 表示获取第二个数据项的name字段的值。
借助于这两个函数,我们可以根据Key来提取出需要的数据,进而去做我们测试用例的判断,完成对接口的自动化测试。当然我们还可以根据自己业务的需要,去封装获取你需要的数据的函数,以减少工作量。
经过上面我们封装的调用函数,结果处理函数,就可以通过java代码来完成对HTTP请求的API的调用,数据的获取等功能,下面我们实践一下:
public static void main( String[] args )
{
// Get接口调用
String url="http://api.zhongchou.cn/deal/list";
String params="?v=1";
String apiresult=GetRequests(url,params);
System.out.println("errno:"+GetJsonValue(apiresult,0,"errno"));//获取接口返回代码
System.out.println("name:"+GetJsonValue(apiresult,3,"name"));//获取第三个项目的项目名称 //Post接口调用
String posturl="http://api.zhongchou.cn/user/login?v=1";
Map map = new IdentityHashMap ();
map.put("identity", "183****8905");
map.put("password", "**********");
String poresult=PostRequests(posturl,map,null);
//获取登录的用户帐号昵称
System.out.println("Name:"+GetJsonValue(poresult,1,"name"));
}
接口返回值结果转换成JSON的更多相关文章
- json字符串转换成json对象,json对象转换成字符串,值转换成字符串,字符串转成值
一.json相关概念 json,全称为javascript object notation,是一种轻量级的数据交互格式.采用完全独立于语言的文本格式,是一种理想的数据交换格式. 同时,json是jav ...
- Jquery把获取到的input值转换成json
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...
- JS 解决json字符串转换成json树形输出
问题: 后台获取一个字符串,格式为 string +jsonList+string+..... 就是传过来一堆数据,然后其中包含了一个json格式的list, 我们希望能将它输出成树形结构显示,能够 ...
- DataTable 转换成 Json的3种方法
在web开发中,我们可能会有这样的需求,为了便于前台的JS的处理,我们需要将查询出的数据源格式比如:List<T>.DataTable转换为Json格式.特别在使用Extjs框架的时候,A ...
- 用jquery解析JSON数据的方法以及字符串转换成json的3种方法
用jquery解析JSON数据的方法,作为jquery异步请求的传输对象,jquery请求后返回的结果是 json对象,这里考虑的都是服务器返回JSON形式的字符串的形式,对于利用JSONObject ...
- DataTable转换成json字符串
将DataTable里面的行转换成json字符串方法: #region DataTable转为json /// <summary> /// DataTable转为json /// < ...
- 如何在ASP.NET中用C#将XML转换成JSON
本文旨在介绍如果通过C#将获取到的XML文档转换成对应的JSON格式字符串,然后将其输出到页面前端,以供JavaScript代码解析使用.或许你可以直接利用JavaScript代码通过Ajax的方式来 ...
- C# 将MSMQ消息转换成Json格式 【优化】
C# 将MSMQ消息转换成Json格式 [优化] 转换函数: private string ConvertToJSON(string label, string body) { //TODO: co ...
- 如何在ASP.NET中用C#将XML转换成JSON 【转】
本文旨在介绍如果通过C#将获取到的XML文档转换成对应的JSON格式字符串,然后将其输出到页面前端,以供JavaScript代码解析使用.或许你可以直接利用JavaScript代码通过Ajax的方 ...
随机推荐
- mongoose 数据库操作3
Model.find(query, fields, options, callback) Model.find({ 'some.value': 5 }, function (err, docs) { ...
- 书籍:Building Secure PHP Apps
Building Secure PHP Apps https://leanpub.com/buildingsecurephpapps
- 学习:erlang用链表实现大容量的List或者数组。
链表的内在实质. 效率未知,待测.
- 多线程编程(三)--创建线程之Thread VS Runnable
前面写过一篇基础的创建多线程的博文: 那么本篇博文主要来对照一下这两种创建线程的差别. 继承Thread类: 还拿上篇博客的样例来说: 四个线程各自卖各自的票,说明四个线程之间没有共享,是独立的线程. ...
- [转]ASP.NET MVC 5 - 视图
在本节中,你要去修改HelloWorldController类,使用视图模板文件,在干净利索地封装的过程中:客户端浏览器生成HTML. 您将创建一个视图模板文件,其中使用了ASP.NET MVC 3所 ...
- 编程之美 set 6 寻找最近点对
这道题在算法课上当做例题讲过, 当时的印象也比较深 另有一道近似算法的题也在算法课上讲过, 并且印象更深, 复习的时候完全没管, 以为志在必得, 结果真考了那道近似算法, 我却没能打出来 为避免阴沟翻 ...
- import cx_Oracle报错,提示importError: DLL load failed: 不是有效的Win32程序。
问题说明1:WIN32,python是2.7版本,本地oracle client是32位的.import cx_Oracle报错,提示importError: DLL load failed: 该模块 ...
- poj_3259 负权和环
题目大意 N个点,M条双向路径,W条单向路径.从双向路径的一端到另一端所花费时间为正值,从单向路径的源点到终点所花时间为负值.问是否存在一条从A出发,再回到A的回路,满足回到A的时间小于出发时间. 题 ...
- 160512、nginx+多个tomcat集群+session共享(windows版)
第一步:下载nginx的windows版本,解压即可使用,点击nginx.exe启动nginx 或cmd命令 1.启动: D:\nginx+tomcat\nginx-1.9.3>start ng ...
- css calc()
w https://developer.mozilla.org/en-US/docs/Web/CSS/calc The calc() CSS function can be used anywhere ...