完成解析条件表达式字符串

This commit is contained in:
sanmao 2022-07-04 10:30:05 +08:00
parent 56f761f302
commit e2cf085183
1 changed files with 4 additions and 78 deletions

View File

@ -22,8 +22,7 @@ public class ConditionParser {
Console.log("object = ", JSONUtil.toJsonStr(jsonArray.get(i))); Console.log("object = ", JSONUtil.toJsonStr(jsonArray.get(i)));
JSONObject o = jsonArray.getJSONObject(i); JSONObject o = jsonArray.getJSONObject(i);
int finalI = i; for (Map.Entry<String, Object> kv : o.entrySet()) {
for(Map.Entry<String, Object> kv: o.entrySet()) {
String key = kv.getKey(); String key = kv.getKey();
JSONArray values = (JSONArray) kv.getValue(); JSONArray values = (JSONArray) kv.getValue();
@ -31,7 +30,7 @@ public class ConditionParser {
if (notEmpty) { if (notEmpty) {
MathOperatorEnum operatorEnum = MathOperatorEnum.fromOperator(key); MathOperatorEnum operatorEnum = MathOperatorEnum.fromOperator(key);
if (finalI != 0) { if (i != 0) {
Console.log("math Operator = {}", operatorEnum.toString()); Console.log("math Operator = {}", operatorEnum.toString());
stringBuffer.append(" ").append(operatorEnum.getActual()).append(" "); stringBuffer.append(" ").append(operatorEnum.getActual()).append(" ");
} }
@ -45,7 +44,6 @@ public class ConditionParser {
private static String parseArithmetic(MathOperatorEnum parentOperatorEnum, JSONArray jsonArray) { private static String parseArithmetic(MathOperatorEnum parentOperatorEnum, JSONArray jsonArray) {
StringJoiner stringJoiner = new StringJoiner(" "); StringJoiner stringJoiner = new StringJoiner(" ");
// stringJoiner.add("(");
int ki = 0; int ki = 0;
for (Object value : jsonArray) { for (Object value : jsonArray) {
JSONObject vJson = (JSONObject) value; JSONObject vJson = (JSONObject) value;
@ -53,11 +51,9 @@ public class ConditionParser {
Set<String> keySet = vJson.keySet(); Set<String> keySet = vJson.keySet();
for (String skey : keySet) { for (String skey : keySet) {
JSONArray sValues = vJson.getJSONArray(skey); JSONArray sValues = vJson.getJSONArray(skey);
// if(ki != 0) {
MathOperatorEnum operatorEnum = MathOperatorEnum.fromOperator(skey); MathOperatorEnum operatorEnum = MathOperatorEnum.fromOperator(skey);
Console.log("math Operator = {}, isLogical = {}", operatorEnum.toString(), operatorEnum.isLogical()); Console.log("math Operator = {}, isLogical = {}", operatorEnum.toString(), operatorEnum.isLogical());
// } if (ki != 0) {
if(ki != 0) {
stringJoiner.add(parentOperatorEnum.getActual()); stringJoiner.add(parentOperatorEnum.getActual());
} }
@ -72,77 +68,7 @@ public class ConditionParser {
} }
ki++; ki++;
} }
// stringJoiner.add(") ");
return stringJoiner.toString(); return stringJoiner.toString();
} }
// private static String parseArithmetic(JSONArray jsonArray) {
// Console.log("parseArithmetic ---- {}", JSONUtil.toJsonStr(jsonArray));
// StringJoiner stringJoiner = new StringJoiner(" ");
// stringJoiner.add("(");
// int ki = 0;
// for (Object value : jsonArray) {
// JSONObject vJson = (JSONObject) value;
//
// Set<String> keySet = vJson.keySet();
// for (String skey : keySet) {
// JSONArray sValues = vJson.getJSONArray(skey);
//// if(ki != 0) {
// MathOperatorEnum operatorEnum = MathOperatorEnum.fromOperator(skey);
// Console.log("math Operator = {}, isLogical = {}", operatorEnum.toString(), operatorEnum.isLogical());
//// }
// String leftValue = sValues.getStr(0);
// String rightValue = sValues.getStr(1);
// stringJoiner.add(leftValue).add(operatorEnum.getActual()).add(rightValue);
// }
// ki++;
// }
// stringJoiner.add(") ");
//
//// JSONObject o = jsonArray.getJSONObject(i);
////
//// int finalI = i;
//// for(Map.Entry<String, Object> kv: o.entrySet()) {
//// String key = kv.getKey();
//// JSONArray values = (JSONArray) kv.getValue();
//// boolean notEmpty = CollUtil.isNotEmpty(values);
////
//// if (notEmpty) {
//// if (finalI != 0) {
//// MathOperatorEnum operatorEnum = MathOperatorEnum.fromOperator(key);
//// Console.log("math Operator = {}", operatorEnum.toString());
//// stringJoiner.add(operatorEnum.getActual());
//// }
////
////
//// stringJoiner.add("(");
//// int ki = 0;
//// for (Object value : values) {
//// JSONObject vJson = (JSONObject) value;
////
//// Set<String> keySet = vJson.keySet();
//// for (String skey : keySet) {
//// JSONArray sValues = vJson.getJSONArray(skey);
////// if(ki != 0) {
//// MathOperatorEnum operatorEnum = MathOperatorEnum.fromOperator(skey);
//// Console.log("math Operator = {}, isLogical = {}", operatorEnum.toString(), operatorEnum.isLogical());
////// }
////
//// if(operatorEnum.isLogical()) {
//// stringJoiner.add(parseCondition(sValues));
//// } else {
//// String leftValue = sValues.getStr(0);
//// String rightValue = sValues.getStr(1);
//// stringJoiner.add(leftValue).add(operatorEnum.getActual()).add(rightValue);
//// }
//// }
//// ki++;
//// }
//// stringJoiner.add(") ");
//// }
//// stringBuffer.append(stringJoiner.toString());
//// }
// return stringJoiner.toString();
// }
} }