@Override public String toString() { StringBuilder stackString = new StringBuilder(); for (JsonFieldTokenPair jsonFieldTokenPair : stack) { stackString.append("/") .append(jsonFieldTokenPair.getField()); } if (currentField != null) { stackString.append("/") .append(currentField); } return stackString.length() == 0 ? "/" : stackString.toString(); }
@Override public boolean testExpression(String expression) { if (expression.equals(".")) { return true; } else { if (currentField != null) { return currentField.equals(expression); } else { return (!stack.isEmpty()) && stack.peek().getField().equals(expression); } } }
@Override public String getCurrentParentElement() { String parentElement; if (currentField != null) { parentElement = currentField; } else if ( !stack.isEmpty() ) { parentElement = stack.peek().getField(); } else { parentElement = ""; } return parentElement; }
private void updateContext() throws IOException { lastParsedParentElement = null; if (currentToken == null) return; if (currentToken == START_OBJECT || currentToken == START_ARRAY) { if (currentField != null) { stack.push(new JsonFieldTokenPair(currentField, currentToken)); currentField = null; } } else if (currentToken == END_OBJECT || currentToken == END_ARRAY) { if (!stack.isEmpty()) { boolean squareBracketsMatch = currentToken == END_ARRAY && stack.peek().getToken() == START_ARRAY; boolean curlyBracketsMatch = currentToken == END_OBJECT && stack.peek().getToken() == START_OBJECT; if (squareBracketsMatch || curlyBracketsMatch) { lastParsedParentElement = stack.pop().getField(); } } currentField = null; } else if (currentToken == FIELD_NAME) { String t = jsonParser.getText(); currentField = t; } }
@Override public String getCurrentParentElement() { String parentElement; if (currentField != null) { parentElement = currentField; } else if ( !stack.isEmpty() ) { parentElement = stack.peek().getField(); } else { parentElement = ""; } return parentElement; }
@Override public String toString() { StringBuilder stackString = new StringBuilder(); for (JsonFieldTokenPair jsonFieldTokenPair : stack) { stackString.append("/") .append(jsonFieldTokenPair.getField()); } if (currentField != null) { stackString.append("/") .append(currentField); } return stackString.length() == 0 ? "/" : stackString.toString(); }
@Override public boolean testExpression(String expression) { if (expression.equals(".")) { return true; } else { if (currentField != null) { return currentField.equals(expression); } else { return (!stack.isEmpty()) && stack.peek().getField().equals(expression); } } }
private void updateContext() throws IOException { lastParsedParentElement = null; if (currentToken == null) { return; } if (currentToken == START_OBJECT || currentToken == START_ARRAY) { if (currentField != null) { stack.push(new JsonFieldTokenPair(currentField, currentToken)); currentField = null; } else if (currentToken == START_ARRAY) { // Current field is null so this is an array within an array. Push an extra array field onto the stack to be // popped when we reach the end of the array. stack.push(new JsonFieldTokenPair("ARRAY", currentToken)); } } else if (currentToken == END_OBJECT || currentToken == END_ARRAY) { if (!stack.isEmpty()) { boolean squareBracketsMatch = currentToken == END_ARRAY && stack.peek().getToken() == START_ARRAY; boolean curlyBracketsMatch = currentToken == END_OBJECT && stack.peek().getToken() == START_OBJECT; if (squareBracketsMatch || curlyBracketsMatch) { lastParsedParentElement = stack.pop().getField(); } } currentField = null; } else if (currentToken == FIELD_NAME) { String t = jsonParser.getText(); currentField = t; } }
@Override public String toString() { StringBuilder stackString = new StringBuilder(); for (JsonFieldTokenPair jsonFieldTokenPair : stack) { stackString.append("/") .append(jsonFieldTokenPair.getField()); } if (currentField != null) { stackString.append("/") .append(currentField); } return stackString.length() == 0 ? "/" : stackString.toString(); }
@Override public boolean testExpression(String expression) { if (expression.equals(".")) { return true; } else { if (currentField != null) { return currentField.equals(expression); } else { return (!stack.isEmpty()) && stack.peek().getField().equals(expression); } } }
@Override public String getCurrentParentElement() { String parentElement; if (currentField != null) { parentElement = currentField; } else if ( !stack.isEmpty() ) { parentElement = stack.peek().getField(); } else { parentElement = ""; } return parentElement; }
private void updateContext() throws IOException { lastParsedParentElement = null; if (currentToken == null) { return; } if (currentToken == START_OBJECT || currentToken == START_ARRAY) { if (currentField != null) { stack.push(new JsonFieldTokenPair(currentField, currentToken)); currentField = null; } else if (currentToken == START_ARRAY) { // Current field is null so this is an array within an array. Push an extra array field onto the stack to be // popped when we reach the end of the array. stack.push(new JsonFieldTokenPair("ARRAY", currentToken)); } } else if (currentToken == END_OBJECT || currentToken == END_ARRAY) { if (!stack.isEmpty()) { boolean squareBracketsMatch = currentToken == END_ARRAY && stack.peek().getToken() == START_ARRAY; boolean curlyBracketsMatch = currentToken == END_OBJECT && stack.peek().getToken() == START_OBJECT; if (squareBracketsMatch || curlyBracketsMatch) { lastParsedParentElement = stack.pop().getField(); } } currentField = null; } else if (currentToken == FIELD_NAME) { String t = jsonParser.getText(); currentField = t; } }