简体   繁体   中英

Getting JSON objects / arrays using GSON library without converting to pojos

I used jackson to convert json strings to json objects / arrays like so:

JSONObject jsonObj = XML.toJSONObject(myXmlString);
JSONObject userObj = jsonObj.getJSONObject("user"); // is there a GSON version of this? 
JSONArray orders = userObj.getJSONArray("orders");

My main question is: is there a GSON version of getting json objects / arrays without converting to a pojo? My json is very complex so it's difficult to create pojos.

Secondly, does gson allow you to convert an xml string to json like jackson does (line 1)?

For the first question:

You can create a JsonObject from a json string

String json = "{ \"key1\": \"value1\", \"key2\": false}";
JsonObject jsonObject = new JsonParser().parse(json).getAsJsonObject();

otherwise you can create a Map object

String jsonString = "{'employee.name':'Bob','employee.salary':10000}";
Gson gson = new Gson();
Map map = gson.fromJson(jsonString, Map.class);

for reference: https://www.baeldung.com/gson-json-to-map

For the second question:

I found this question in stackoverflow

is there a GSON version of getting json objects / arrays without converting to a pojo?

Something like this can do the job

import com.google.gson.*;

JsonParser parser = new JsonParser();

JsonElement json = parser.parse(myJsonString);

//get as object
JsonObject obj = json.getAsJsonObject();

//get as array
JsonArray arr = json.getAsJsonArray();

does gson allow you to convert an xml string to json like jackson does

No

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM