接口返回值结果转换成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的方 ...
随机推荐
- selenium使用中遇到的问题
1.Exception in thread "main" org.openqa.selenium.WebDriverException: Cannot find firefox b ...
- ZooKeeper是以Fast Paxos算法为基础的
ZooKeeper是以Fast Paxos算法为基础的,Paxos 算法存在活锁的问题,即当有多个proposer交错提交时,有可能互相排斥导致没有一个proposer能提交成功,而Fast Paxo ...
- mysql --mysqli::multi_query 和 mysqli_multi_query
语法: 对象化:bool mysqli::multi_query ( string $query ) 过程化:bool mysqli_multi_query ( mysqli $link , stri ...
- 【noip模拟题】最大公约数(数论)
好神的一题... 首先我们只需要枚举这个gcd即可..从大到小,然后问题转换为判定问题...即判定是否有k个数有gcd这个约数.. orz 这样做的复杂度最坏是O(n+n/2+n/3+…+n/n)=O ...
- IPL和SPL的区别
IPL是英文Initial Program Loader的简称,意为初始程序的装入程序,其主要功能为负责主板.电源.硬件初始化程序.并把SPL装入RAM空间中,当IPL损坏则只能更换字库解决否则只能换 ...
- Html制作简单而漂亮的登录页面
先来看看样子. html源码: <!DOCTYPE html> <html lang="en"> <head> <meta charset ...
- 从头认识java-18.2 主要的线程机制(2)-Executors的使用
在前面的章节我们都是直接对Thread进行管理,我们这里解释一下还有一个管理Thread的类Executors. 1.样例: package com.ray.ch17; import java.uti ...
- shell脚本学习总结08--比较与测试
程序中流程控制是由比较语句和测试语句处理的 算数比较 [ $var -gt 20 ] [ $var -gt 20 -a $var -lt 50 ] #使用逻辑与 [ $var -ne ...
- jsp导出到Excel
jsp模板文件 <%@ page isELIgnored="false" contentType="application/x-msdownload; charse ...
- flask模块
import flask, json #把当前的文件当成一个服务 server = flask.Flask(__name__) @server.route('/index', methods=['ge ...