I'm writing a servlet where we are getting a response from a third party API. The response we are getting is in String format, something like - {_ "errors" : [ {_ "message" : "Language encurr=USD is not supported",_ "type" : "UnsupportedLanguageError"_ } ]_}
I need to store this in JsonObject format so that we can access the keys properly.
JsonObject json = new JsonObject(restServiceResponse.getResponseString()); is throwing error.
How can this be attained?
Solved! Go to Solution.
Views
Replies
Total Likes
@goyalkritika - You can use GSON library's fromJson to deserializes the Json read from the specified parse tree into an object of the specified type.
Gson gson = new Gson();
JsonObject json = gson.fromJson( restServiceResponse.getResponseString(), JsonObject.class);
Refer the below URL for documentation -https://www.javadoc.io/doc/com.google.code.gson/gson/2.8.5/com/google/gson/Gson.html
hello @goyalkritika
In case you are getting an error message, please validate if Json is valid like on
What is the '_' in the json that you have shared? If the json is valid, may be split the json into smaller chunks and check, if any specific key/value has issue during conversion to JsonObject
Also, you might want to convert them to Beans. It just becomes easier to understand and access the structure.
https://www.tutorialspoint.com/how-to-convert-a-json-string-to-a-bean-using-json-lib-api-in-java
@goyalkritika - You can use GSON library's fromJson to deserializes the Json read from the specified parse tree into an object of the specified type.
Gson gson = new Gson();
JsonObject json = gson.fromJson( restServiceResponse.getResponseString(), JsonObject.class);
Refer the below URL for documentation -https://www.javadoc.io/doc/com.google.code.gson/gson/2.8.5/com/google/gson/Gson.html
Hi @goyalkritika ,
If I have understood the question correctly then-
1. You have an external API to be consumed which provides response as String.
2. You have written custom Sling Servlet where you want to convert this response to JSON Object.
3. You want to read objects from the JSON object converted in step#2.
for this you can simply set content type as application/json
String apiResponse = //Caling external API
PrintWriter out = response.getWriter();
response.setContentType("application/json");
response.setCharacterEncoding("UTF-8");
out.print(apiResponse)
Hope it helps!
Views
Likes
Replies
Views
Likes
Replies