From 0445b81db17ceda967f4df0d20e1f8e5b52ccff8 Mon Sep 17 00:00:00 2001 From: gedoor Date: Tue, 28 Sep 2021 09:37:48 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../model/analyzeRule/AnalyzeByJSonPath.kt | 45 ++++++------------- 1 file changed, 14 insertions(+), 31 deletions(-) diff --git a/app/src/main/java/io/legado/app/model/analyzeRule/AnalyzeByJSonPath.kt b/app/src/main/java/io/legado/app/model/analyzeRule/AnalyzeByJSonPath.kt index ae27c223f..adbec1c35 100644 --- a/app/src/main/java/io/legado/app/model/analyzeRule/AnalyzeByJSonPath.kt +++ b/app/src/main/java/io/legado/app/model/analyzeRule/AnalyzeByJSonPath.kt @@ -3,7 +3,6 @@ package io.legado.app.model.analyzeRule import androidx.annotation.Keep import com.jayway.jsonpath.JsonPath import com.jayway.jsonpath.ReadContext -import io.legado.app.utils.printOnDebug import java.util.* @Suppress("RegExpRedundantEscape") @@ -41,20 +40,14 @@ class AnalyzeByJSonPath(json: Any) { result = ruleAnalyzes.innerRule("{$.") { getString(it) } //替换所有{$.rule...} if (result.isEmpty()) { //st为空,表明无成功替换的内嵌规则 - try { - val ob = ctx.read(rule) - result = if (ob is List<*>) { - ob.joinToString("\n") - } else { - ob.toString() - } - } catch (ignored: Exception) { + val ob = ctx.read(rule) + result = if (ob is List<*>) { + ob.joinToString("\n") + } else { + ob.toString() } - } - return result - } else { val textList = arrayListOf() for (rl in rules) { @@ -77,24 +70,19 @@ class AnalyzeByJSonPath(json: Any) { val rules = ruleAnalyzes.splitRule("&&", "||", "%%") if (rules.size == 1) { - ruleAnalyzes.reSetPos() //将pos重置为0,复用解析器 val st = ruleAnalyzes.innerRule("{$.") { getString(it) } //替换所有{$.rule...} if (st.isEmpty()) { //st为空,表明无成功替换的内嵌规则 - try { - val obj = ctx.read(rule) //kotlin的Any型返回值不包含null ,删除赘余 ?: return result - if (obj is List<*>) { - for (o in obj) result.add(o.toString()) - } else { - result.add(obj.toString()) - } - } catch (ignored: Exception) { + val obj = ctx.read(rule) //kotlin的Any型返回值不包含null ,删除赘余 ?: return result + if (obj is List<*>) { + for (o in obj) result.add(o.toString()) + } else { + result.add(obj.toString()) } - - } else result.add(st) - + } else { + result.add(st) + } return result - } else { val results = ArrayList>() for (rl in rules) { @@ -136,13 +124,8 @@ class AnalyzeByJSonPath(json: Any) { val rules = ruleAnalyzes.splitRule("&&", "||", "%%") if (rules.size == 1) { ctx.let { - try { - return it.read>(rules[0]) - } catch (e: Exception) { - e.printOnDebug() - } + return it.read>(rules[0]) } - return null } else { val results = ArrayList>() for (rl in rules) {