前文对获取 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. COJ883 工艺品

    试题描述 LZJ和XJR是一对好朋友. 他们现在要做一个由方块构成的长条工艺品.但是方块现在是乱的,而且由于机器的要求,他们只能做到把这个工艺品最左边的方块放到最右边. 他们想,在仅这一个操作下,最漂 ...

  2. 如何在spring框架中解决多数据源的问题

    在我们的项目中遇到这样一个问题:我们的项目需要连接多个数据库,而且不同的客户在每次访问中根据需要会去访问不同的数据库.我们以往在spring和hibernate框架中总是配置一个数据源,因而sessi ...

  3. imread() not working in OpenCV 2.4.11 Debug mode

    The OpenCV function imread() not working in OpenCV 2.4.11 Debug mode of VS2010 under Win32, the way ...

  4. hdu Pie

    这道题是一道二分搜索的题,首先计算出最大的平均体积:mx=V总/f:然后去left=0,right=mx,mid=(left+right)/2进行二分搜索,当所有pi分割出的mid的个数是大于等于f时 ...

  5. Html 5+

    audio Audio模块用于提供音频的录制和播放功能,可调用系统的麦克风设备进行录音操作,也可调用系统的扬声器设备播放音频文件.通过plus.audio获取音频管理对象. http://www.ht ...

  6. 《Lucene实战(第2版)》 配书代码在IDEA下的编译方法

    参考: hankcs http://www.hankcs.com/program/java/lucene-combat-2nd-edition-book-with-code-compiled-unde ...

  7. io资料

    jitsi red5 apache meeting2 openmeeting2 openfire http://www.onlycoder.net/ 在视频会议领域,有许多可以值得参考的开源项目,这些 ...

  8. jQuery如何去判断页面是否有父页面?

    jQuery如何去判断页面是否有父页面?     是要判断当前页面是否被嵌入在frame里吗? 1 2 3 if (top != self) {     alert('我在框架里'); }

  9. Mybatis resultMap空值映射问题解决

    Mybatis在使用resultMap来映射查询结果中的列,如果查询结果中包含空值的列(不是null),则Mybatis在映射的时候,不会映射这个字段,例如 查询 name,sex,age,数据库中的 ...

  10. Ubuntu 14.04 安装 VirtualBox

    参考: ubuntu14.04,安装VirtualBox 5.0(虚拟机软件)! 由于Vagrant工具的需要,安装了一下VirtualBox. 使用参考链接的法一居然在软件中心里面报错,我想可能是没 ...