Java学习-029-JSON 之三 -- 模仿 cssSelector 封装读取 JSON 数据方法

时间:2021-12-04 20:18:54

前文简单介绍了如何通过 json-20141113.jar 提供的功能获取 JSON 的数据,敬请参阅:Java学习-028-JSON 之二 -- 数据读取

了解学习过 JQuery 的朋友都知道,JQuery 通过 cssSelector 获取页面元素对象非常简单,那么 JSON 数据的获取是否也可以如此轻松简便呢?答案是可以的。此文就此进行相应的方法封装,通过此方法可以获取 JSONObject,JSONArray,value 的字符串。对应的 cssSelector 我做出了如下的规则限定:

  1. 标示符 $:标示当前获取的对象为 JSONObject
  2. 标示符 #:标示当前获取的对象为 JSONArray
  3. 无标示符:标示当前获取的对象为 value
  4. # 标示符后必须为 $ 标识符
  5. $ 标识符后可为 $ 标识符、 # 标识符、无标识符
  6. 无标识符后不可跟任何数据

例如以下所示的 CSSSelector 表达式均为非法表达式:

*        array|key : is illegal
     *        key|$      : is illegal
     *        key|#      : is illegal
     *        key|key   : is illegal

下面以易迅网首页响应数据为例演示,直接上源码了,敬请参阅。

/**
* 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_getJsonText, 2015-9-1 20:34:18 Exp $
*
*/
@Test
public void test_getJsonText(){
System.out.println("\n==================================== test_getJsonText"); System.out.println("\n result selector : errno --> " + this.getJsonText(this.test, "errno"));
System.out.println("\n result selector : $data|#icon --> " + this.getJsonText(this.test, "$data|#icon"));
System.out.println("\n result selector : $data|#floor|$1|#colmunInfo --> " + this.getJsonText(this.test, "$data|#floor|$1|#colmunInfo"));
System.out.println("\n result selector : $data|#floor|$1|start_date --> " + this.getJsonText(this.test, "$data|#floor|$1|start_date"));
System.out.println("\n result selector : $data|#floor|$1|#colmunInfo|$0 --> " + this.getJsonText(this.test, "$data|#floor|$1|#colmunInfo|$0"));
System.out.println("\n result selector : $data|#floor|$1|#colmunInfo|$0|title --> " + this.getJsonText(this.test, "$data|#floor|$1|#colmunInfo|$0|title"));
} /**
* 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="" width="823" height="303" />

至此, Java学习-029-JSON 之三 -- 模仿 cssSelector 封装读取 JSON 数据方法 顺利完结,希望此文能够给初学 Java 的您一份参考。

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