88import java .util .Map .Entry ;
99
1010import com .fasterxml .jackson .core .JsonFactory ;
11+ import com .fasterxml .jackson .core .JsonParseException ;
1112import com .fasterxml .jackson .core .JsonParser ;
1213import com .fasterxml .jackson .core .JsonProcessingException ;
1314import com .fasterxml .jackson .core .JsonToken ;
1415import com .fasterxml .jackson .core .type .TypeReference ;
16+ import com .fasterxml .jackson .databind .JsonMappingException ;
1517import com .fasterxml .jackson .databind .JsonNode ;
1618import com .fasterxml .jackson .databind .ObjectMapper ;
1719import com .fasterxml .jackson .databind .node .ArrayNode ;
1820
1921public class GetAllKeysFromJSON {
2022
21- public static List <String > getKeysInJsonUsingMaps (String json , ObjectMapper mapper ) {
23+ public List <String > getKeysInJsonUsingMaps (String json , ObjectMapper mapper ) throws JsonMappingException , JsonProcessingException {
2224 List <String > keys = new ArrayList <>();
23-
24- try {
25- Map <String , Object > jsonElements = mapper .readValue (json , new TypeReference <Map <String , Object >>() {
26- });
27- getAllKeys (jsonElements , keys );
28- return keys ;
29-
30- } catch (JsonProcessingException e ) {
31- e .printStackTrace ();
32- }
33-
25+ Map <String , Object > jsonElements = mapper .readValue (json , new TypeReference <Map <String , Object >>() {
26+ });
27+ getAllKeys (jsonElements , keys );
3428 return keys ;
3529 }
3630
37- public static void getAllKeys (Map <String , Object > jsonElements , List <String > keys ) {
31+ private void getAllKeys (Map <String , Object > jsonElements , List <String > keys ) {
3832
3933 jsonElements .entrySet ()
4034 .forEach (entry -> {
@@ -54,51 +48,35 @@ public static void getAllKeys(Map<String, Object> jsonElements, List<String> key
5448 });
5549 }
5650
57- public static List <String > getKeysInJsonUsingJsonNodeFieldNames (String json , ObjectMapper mapper ) {
58- List <String > keys = new ArrayList <>();
59-
60- try {
61- JsonNode jsonNode = mapper .readTree (json );
62- Iterator <String > iterator = jsonNode .fieldNames ();
63- iterator .forEachRemaining (e -> keys .add (e ));
51+ public List <String > getKeysInJsonUsingJsonNodeFieldNames (String json , ObjectMapper mapper ) throws JsonMappingException , JsonProcessingException {
6452
65- } catch (JsonProcessingException e ) {
66- e .printStackTrace ();
67- }
53+ List <String > keys = new ArrayList <>();
54+ JsonNode jsonNode = mapper .readTree (json );
55+ Iterator <String > iterator = jsonNode .fieldNames ();
56+ iterator .forEachRemaining (e -> keys .add (e ));
6857 return keys ;
6958 }
7059
71- public static List <String > getAllKeysInJsonUsingJsonNodeFieldNames (String json , ObjectMapper mapper ) {
72- List <String > keys = new ArrayList <>();
73-
74- try {
75- JsonNode jsonNode = mapper .readTree (json );
76- getAllKeysUsingJsonNodeFieldNames (jsonNode , keys );
60+ public List <String > getAllKeysInJsonUsingJsonNodeFieldNames (String json , ObjectMapper mapper ) throws JsonMappingException , JsonProcessingException {
7761
78- } catch ( JsonProcessingException e ) {
79- e . printStackTrace ( );
80- }
62+ List < String > keys = new ArrayList <>();
63+ JsonNode jsonNode = mapper . readTree ( json );
64+ getAllKeysUsingJsonNodeFieldNames ( jsonNode , keys );
8165 return keys ;
8266 }
8367
84- public static List <String > getAllKeysInJsonUsingJsonNodeFields (String json , ObjectMapper mapper ) {
85- List <String > keys = new ArrayList <>();
68+ public List <String > getAllKeysInJsonUsingJsonNodeFields (String json , ObjectMapper mapper ) throws JsonMappingException , JsonProcessingException {
8669
87- try {
88- JsonNode jsonNode = mapper .readTree (json );
89- getAllKeysUsingJsonNodeFields (jsonNode , keys );
90-
91- } catch (JsonProcessingException e ) {
92- e .printStackTrace ();
93- }
70+ List <String > keys = new ArrayList <>();
71+ JsonNode jsonNode = mapper .readTree (json );
72+ getAllKeysUsingJsonNodeFields (jsonNode , keys );
9473 return keys ;
9574 }
9675
97- public static void getAllKeysUsingJsonNodeFields (JsonNode jsonNode , List <String > keys ) {
76+ private void getAllKeysUsingJsonNodeFields (JsonNode jsonNode , List <String > keys ) {
9877
9978 if (jsonNode .isObject ()) {
10079 Iterator <Entry <String , JsonNode >> fields = jsonNode .fields ();
101-
10280 fields .forEachRemaining (field -> {
10381 keys .add (field .getKey ());
10482 getAllKeysUsingJsonNodeFieldNames ((JsonNode ) field .getValue (), keys );
@@ -112,11 +90,10 @@ public static void getAllKeysUsingJsonNodeFields(JsonNode jsonNode, List<String>
11290
11391 }
11492
115- public static void getAllKeysUsingJsonNodeFieldNames (JsonNode jsonNode , List <String > keys ) {
93+ private void getAllKeysUsingJsonNodeFieldNames (JsonNode jsonNode , List <String > keys ) {
11694
11795 if (jsonNode .isObject ()) {
11896 Iterator <String > fieldNames = jsonNode .fieldNames ();
119-
12097 fieldNames .forEachRemaining (fieldName -> {
12198 keys .add (fieldName );
12299 getAllKeysUsingJsonNodeFieldNames (jsonNode .get (fieldName ), keys );
@@ -130,43 +107,29 @@ public static void getAllKeysUsingJsonNodeFieldNames(JsonNode jsonNode, List<Str
130107
131108 }
132109
133- public static List <String > getKeysInJsonUsingJsonParser (String json , ObjectMapper mapper ) {
134- List <String > keys = new ArrayList <>();
110+ public List <String > getKeysInJsonUsingJsonParser (String json , ObjectMapper mapper ) throws IOException {
135111
136- try {
137- JsonNode jsonNode = mapper .readTree (json );
138- JsonParser jsonParser = jsonNode .traverse ();
139- while (!jsonParser .isClosed ()) {
140- if (jsonParser .nextToken () == JsonToken .FIELD_NAME ) {
141- keys .add ((jsonParser .getCurrentName ()));
142- }
112+ List <String > keys = new ArrayList <>();
113+ JsonNode jsonNode = mapper .readTree (json );
114+ JsonParser jsonParser = jsonNode .traverse ();
115+ while (!jsonParser .isClosed ()) {
116+ if (jsonParser .nextToken () == JsonToken .FIELD_NAME ) {
117+ keys .add ((jsonParser .getCurrentName ()));
143118 }
144- } catch (JsonProcessingException e ) {
145- e .printStackTrace ();
146- } catch (IOException e ) {
147- e .printStackTrace ();
148119 }
149-
150120 return keys ;
151121 }
152122
153- public static List <String > getKeysInJsonUsingJsonParser (String json ) {
154- List <String > keys = new ArrayList <>();
123+ public List <String > getKeysInJsonUsingJsonParser (String json ) throws JsonParseException , IOException {
155124
156- try {
157- JsonFactory factory = new JsonFactory ();
158- JsonParser jsonParser = factory .createParser (json );
159- while (!jsonParser .isClosed ()) {
160- if (jsonParser .nextToken () == JsonToken .FIELD_NAME ) {
161- keys .add ((jsonParser .getCurrentName ()));
162- }
125+ List <String > keys = new ArrayList <>();
126+ JsonFactory factory = new JsonFactory ();
127+ JsonParser jsonParser = factory .createParser (json );
128+ while (!jsonParser .isClosed ()) {
129+ if (jsonParser .nextToken () == JsonToken .FIELD_NAME ) {
130+ keys .add ((jsonParser .getCurrentName ()));
163131 }
164- } catch (JsonProcessingException e ) {
165- e .printStackTrace ();
166- } catch (IOException e ) {
167- e .printStackTrace ();
168132 }
169-
170133 return keys ;
171134 }
172135}
0 commit comments