|
@@ -0,0 +1,44 @@
|
|
|
|
+import java.util.ArrayList;
|
|
|
|
+import java.util.HashMap;
|
|
|
|
+
|
|
|
|
+public class JsonParser1 {
|
|
|
|
+ public static String[] getFields(HashMap<String, Object> jsonObject, String jsonPath) {
|
|
|
|
+ String[] keys = jsonPath.split("\\.");
|
|
|
|
+ Object currentObject = jsonObject;
|
|
|
|
+
|
|
|
|
+ for (String key : keys) {
|
|
|
|
+ if (currentObject instanceof HashMap) {
|
|
|
|
+ currentObject = ((HashMap<?, ?>) currentObject).get(key);
|
|
|
|
+ } else {
|
|
|
|
+ // Invalid JSON path or key not found
|
|
|
|
+ return new String[0];
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ if (currentObject instanceof HashMap) {
|
|
|
|
+ ArrayList<String> fieldKeys = new ArrayList<>();
|
|
|
|
+ for (Object fieldKey : ((HashMap<?, ?>) currentObject).keySet()) {
|
|
|
|
+ fieldKeys.add(fieldKey.toString());
|
|
|
|
+ }
|
|
|
|
+ return fieldKeys.toArray(new String[0]);
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ // Invalid JSON path or key not found
|
|
|
|
+ return new String[0];
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ public static void main(String[] args) {
|
|
|
|
+ HashMap<String, Object> json = new HashMap<>();
|
|
|
|
+ HashMap<String, Object> data = new HashMap<>();
|
|
|
|
+ HashMap<String, Object> tag = new HashMap<>();
|
|
|
|
+ tag.put("a", "b");
|
|
|
|
+ tag.put("c", "d");
|
|
|
|
+ data.put("tag", tag);
|
|
|
|
+ json.put("data", data);
|
|
|
|
+
|
|
|
|
+ String jsonPath = "data.tag";
|
|
|
|
+
|
|
|
|
+ String[] fields = getFields(json, jsonPath);
|
|
|
|
+ System.out.println("Fields: " + String.join(", ", fields));
|
|
|
|
+ }
|
|
|
|
+}
|