前文对获取 JSON 数据封装方法,使之可通过类似于 cssSelector 的方法获取 JSON 数据,使获取数据变得简单。敬请参阅:模仿 cssSelector 封装读取 JSON 数据方法

在日常的测试中,需要验证 JSON 数据中某一个值是否正确,再次封装一个方法,验证 JSONObject 中是否包含特定的键值。

直接上码了:

/**
* Aaron.ffp Inc.
* Copyright (c) 2004-2015 All Rights Reserved.
*/
package com.demo; import java.io.IOException; import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;
import org.jsoup.Jsoup;
import org.jsoup.helper.StringUtil;
import org.jsoup.nodes.Document;
import org.testng.annotations.BeforeTest;
import org.testng.annotations.Test;
import org.testng.log4testng.Logger; /**
*
* @author Aaron.ffp
* @version V1.0.0: Jsoup com.demo ITestHome.java, 2015-8-31 19:03:15 Exp $
*/
public class ITestHome {
private String request = "http://mb.51buy.com/json.php?mod=home&act=config";
private Logger logger = Logger.getLogger(this.getClass());
private String message = "";
private Document doc;
private String test; /**
* send request and get response
*
* @author Aaron.ffp
* @version V1.0.0: Jsoup com.demo ITestHome.java beforeTest, 2015-8-31 19:04:05 Exp $
*
* @throws IOException
*/
@BeforeTest
public void beforeTest() throws IOException{
this.doc = Jsoup.connect(this.request).data("appSource","android")
.userAgent("Jsoup demo")
.cookie("user", "Jsoup")
.timeout(5000).get();
this.test = doc.select("body").get(0).text();
} /**
*
*
* @author Aaron.ffp
* @version V1.0.0: Jsoup com.demo ITestHome.java test_isJSONObjectContainKV, 2015-9-2 20:24:56 Exp $
*
* @throws IOException
*/
@Test
public void test_isJSONObjectContainKV() throws IOException {
System.out.println("\n\n==================================== test_isJSONObjectContainKV"); System.out.println("errno --> " + this.isJSONObjectContainKV(new JSONObject(this.test), "errno:0"));
System.out.println("title:星星 --> " + this.isJSONObjectContainKV(new JSONObject(this.getJsonText(this.test, "$data|#floor|$1|#colmunInfo|$0")), "title:星星"));
} /**
* Assert the key-value exist or not in the JSONObject
*
* @author Aaron.ffp
* @version V1.0.0: Jsoup com.demo ITestHome.java isJSONObjectContainKV, 2015-9-2 20:05:18 Exp $
*
* @param jsonObject : JSONObject
* @param kv : key:value
*
* @return boolean
*/
public boolean isJSONObjectContainKV(JSONObject jsonObject, String key_value){
boolean flag = false; try{
if (jsonObject == null) {
new NullPointerException("The argument {" + jsonObject + "} is null, please check this!"); return flag;
} // assert key_value : null, empty, whitespace
if (StringUtil.isBlank(key_value) || !"2".equals(String.valueOf(key_value.split(":").length)) ||
StringUtil.isBlank(key_value.split(":")[0]) || StringUtil.isBlank(key_value.split(":")[1])) {
this.message = "The argument {" + key_value + "} is invalid, please check this!";
this.logger.warn(this.message); return flag;
} String act = jsonObject.get(key_value.split(":")[0]).toString();
String exp = key_value.split(":")[1]; // assert the actual value is expected or not
if (exp.equals(act)) {
flag = true;
}
} catch (JSONException je){
this.message = je.getMessage();
this.logger.error(this.message); return flag;
} return flag;
} /**
* Get JSON Object {JSONObject, JSONArray, text} by json selector
*
* @author Aaron.ffp
* @version V1.0.0: Jsoup com.demo ITestHome.java getJsonText, 2015-9-1 19:40:12 Exp $
*
* @param json : JSON string
* @param selector : JSON selector
* $key|$key|#array|#int|$int|key
* #key|#int
* $key|#key|$int
* key
*
* array|key : is illegal
* key|$ : is illegal
* key|# : is illegal
* key|key : is illegal
* @return
*/
public String getJsonText(String json, String selector){
JSONObject jo = null;
JSONArray ja = null;
String jsonText = "";
String item = "";
String flag = "O"; // O - JSONObject; A - JSONArray; T - text // arguments must not be null
if (json == null || selector == null) {
this.message = "The argument {" + json + "} and {" + selector + "} must be not null, please check this!";
this.logger.error(this.message); new IllegalArgumentException(this.message);
} // return empty if the json is empty
if ("".equals(json)) {
return "";
} // return json if the selector is empty
if ("".equals(selector)) {
return json;
} try{
jo = new JSONObject(json); String[] select = selector.split("\\|"); for (int i = 0; i < select.length; i++) {
item = select[i]; // throw exception when selector against the rule
if (flag.equals("T") || (flag.equals("A") && (!item.startsWith("O") || !item.startsWith("A") || !StringUtil.isNumeric(item.substring(1))))) {
new IllegalArgumentException("The argument {" + selector + "} is invalid to the define rule of selector, please check this!");
} if (item.startsWith("#")) { // get JSONArray
if (flag.equals("A")) {
ja = ja.getJSONArray(Integer.valueOf(item.substring(1)));
} else if (flag.equals("O")){
ja = jo.getJSONArray(item.substring(1));
} flag = "A";
} else if (item.startsWith("$")){ // get JSONObject
if (flag.equals("O")) {
jo = jo.getJSONObject(item.substring(1));
} else if (flag.equals("A")){
jo = ja.getJSONObject(Integer.valueOf(item.substring(1)));
} flag = "O";
} else { // get text
jsonText = jo.get(item).toString(); flag = "T";
}
}
} catch (JSONException jsone){
jsone.printStackTrace();
} switch (flag) {
case "O":
return jo.toString();
case "A":
return ja.toString();
default:
return jsonText;
}
}
}

运行结果如下图所示:

aaarticlea/png;base64,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" alt="" />

各位也可修改上述源码中的第 98 行,以满足不同方式的对比判断,例如:相等、包含、起始、结尾等。

至此, Java学习-030-JSON 之四 -- 判断 JSONObject 是否包含键值对 顺利完结,希望此文能够给初学 Java 的您一份参考。

最后,非常感谢亲的驻足,希望此文能对亲有所帮助。热烈欢迎亲一起探讨,共同进步。非常感谢! ^_^

Java学习-030-JSON 之四 -- 判断 JSONObject 是否包含键值对的更多相关文章

  1. Java学习-031-JSON 之五 -- 特定数据获取(JSONObject满足特定键值)

    前面几篇博文分别讲述了 JSON 的 概要知识.简单数据获取.封装cssSelector数据获取方法.JSONObject 是否包含 key_value,请自行阅读相关博文. 在日常的接口测试脚本编写 ...

  2. java学习之JSON

    0X00前言 JSON可以说是javascript的一种数据类型,我们学习JSON是为了在客户端的数据给读取出来,官方的解释是:概述:JSON(JavaScript Object Notation, ...

  3. Java学习之分支结构---判断语句:if语句和switch语句

    一个if语句包含一个布尔表达式和一条或多条语句,if 语句的用语法如下:if 语句 if(布尔表达式) { //如果布尔表达式为true将执行的语句 },如果布尔表达式的值为 true,则执行 if ...

  4. JDBC学习笔记(6)——获取自动生成的主键值&处理Blob&数据库事务处理

    获取数据库自动生成的主键 [孤立的技术是没有价值的],我们这里只是为了了解具体的实现步骤:我们在插入数据的时候,经常会需要获取我们插入的这一行数据对应的主键值. 具体的代码实现: /** * 获取数据 ...

  5. java解析出url请求的路径和参数键值对类 - 转

    import java.util.HashMap; import java.util.Map; public class CRequest { /** * 解析出url请求的路径,包括页面 * @pa ...

  6. 【转】JDBC学习笔记(6)——获取自动生成的主键值&处理Blob&数据库事务处理

    转自:http://www.cnblogs.com/ysw-go/ 获取数据库自动生成的主键 我们这里只是为了了解具体的实现步骤:我们在插入数据的时候,经常会需要获取我们插入的这一行数据对应的主键值. ...

  7. 【Java必修课】通过Value获取Map中的键值Key的四种方法

    1 简介 我们都知道Map是存放键值对<Key,Value>的容器,知道了Key值,使用方法Map.get(key)能快速获取Value值.然而,有的时候我们需要反过来获取,知道Value ...

  8. Java学习笔记-Json

    //先导入gson到lib,add build path //2015年5月5日22:02:37 package com.alfredsun.thread; import com.google.gso ...

  9. Java学习笔记——设计模式之四.代理模式

    To be, or not to be: that is the question. --<哈姆雷特> 代理模式(Proxy),为其他对象提供一种代理以控制对这个对象的访问. 上代码: p ...

随机推荐

  1. 洛谷 P1010 幂次方 Label:模拟

    题目描述 任何一个正整数都可以用2的幂次方表示.例如 137=2^7+2^3+2^0 同时约定方次用括号来表示,即a^b 可表示为a(b). 由此可知,137可表示为: 2(7)+2(3)+2(0) ...

  2. COJ986 WZJ的数据结构(负十四)

    WZJ的数据结构(负十四) 难度级别:D: 运行时间限制:6000ms: 运行空间限制:262144KB: 代码长度限制:2000000B 试题描述 请你设计一个数据结构,完成以下功能: 给定一个大小 ...

  3. 实现自己的js框架

    两年前写的,现在发出来,也当是一个记录. 我知道贴代码有些人会反对,觉得应该用文字讲细致,但是我觉得用文字我没发用简单的文字来表达,看代码反而更直接,这个是见仁见智的. 很早之前一直用extjs,这个 ...

  4. Solve Error Debug Assertion Failed Expression vector iterators incompatible Using PCL in Release Mode of VS2010

    When using PCL 1.4.0 in the release mode building under VS2010, we might sometime get the error &quo ...

  5. Spark - RDD(弹性分布式数据集)

    org.apache.spark.rddRDDabstract class RDD[T] extends Serializable with Logging A Resilient Distribut ...

  6. [转载] - QWidget、QMainWindow、QDialog和QFrame的区别

    继承关系:在Qt中所有的类都有一个共同的基类QObject ,QWidget直接继承与QPaintDevice类,QDialog.QMainWindow.QFrame直接继承QWidget 类.   ...

  7. 30个非常流行的提示信息插件(jQuery Tooltip Plugin)

    在网站的设计中,提示信息是非常细微的功能,但是起着非常重要的作用.如果你的网站中提示信息做的比较好,会给浏览者留下非常深刻的印象,同时也会起到非常好的网站宣传效果,下面介绍了30个比较流行提示信息插件 ...

  8. Powershell的远程管理

    powershell有强大的远程管理功能,但是现在遇到个问题,我们之前的客户端操作系统都是默认安装的,没做默认设置,请问如何通过gpo将所有和远程有关的设置都搞定啊?到底要设置哪些个选项?   我的环 ...

  9. CSS系列:表达式(Expression)`淘汰`

    概述 CSS表达式是动态设置CSS属性的强大(但危险)方法.Internet Explorer从第5个版本开始支持CSS表达式. 兼容性 expression方法在其它浏览器中不起作用,因此在跨浏览器 ...

  10. POJ 1511 最短路spfa

    题很简单 就是有向图中求给出的源点到其余所有点的最短路的和与其余所有点到源点的最短路之和 一开始以为dij对于正权图的单源最短路是最快的 写了一发邻接表的dij 结果超时 把所有的cin改成scanf ...