How to parse this json String type using Gson?

{ "status": "Success", "message": "Contents retrieved successfully", "name": { "1": "God", "2": "Goat" }, "sites": { "1": "google", "2": "yahoo", "3": "bing" }, "places": [ "UK", "AU", "US" ], "images": { "1": { "1x": "http://3.bp.blogspot.com/-PPrUA_pcNyI/Udtx6v7MlvI/AAAAAAAADZA/6X2Qu-FcHtA/s320/Android+JSON+stream+data+parsing+example+using+Gson.png", "2x": "http://3.bp.blogspot.com/-PPrUA_pcNyI/Udtx6v7MlvI/AAAAAAAADZA/6X2Qu-FcHtA/s320/Android+JSON+stream+data+parsing+example+using+Gson.png" }, "2": { "1x": "http://3.bp.blogspot.com/-PPrUA_pcNyI/Udtx6v7MlvI/AAAAAAAADZA/6X2Qu-FcHtA/s320/Android+JSON+stream+data+parsing+example+using+Gson.png", "2x": "http://3.bp.blogspot.com/-PPrUA_pcNyI/Udtx6v7MlvI/AAAAAAAADZA/6X2Qu-FcHtA/s320/Android+JSON+stream+data+parsing+example+using+Gson.png" }, "3": { "1x": "http://3.bp.blogspot.com/-PPrUA_pcNyI/Udtx6v7MlvI/AAAAAAAADZA/6X2Qu-FcHtA/s320/Android+JSON+stream+data+parsing+example+using+Gson.png", "2x": "http://3.bp.blogspot.com/-PPrUA_pcNyI/Udtx6v7MlvI/AAAAAAAADZA/6X2Qu-FcHtA/s320/Android+JSON+stream+data+parsing+example+using+Gson.png" } } } 

My class

import java.util.Map;

 public class Data { String status; String message; Map<String, String> name; Map<String, String> Sites; @Override public String toString() { return "Data [status=" + status + ", message=" + message + ", name=" + name + ", Sites=" + Sites + "]"; } } 

this class returns null for searching sites and names

+4
source share
2 answers

name and sites are JSONObjects no Arrays. Any object in JSON must be deserialized in the class using GSON.

So try this,

 public class MyJson { String status; String message; Sites sites; List<String> places; } public class Sites { String 1; String 2; String 3; } 

etc. for each object. For arrays you can use List / Map.

To use it, make a call as follows:

 Gson gson = new Gson(); MyJson myJson = gson.fromJson(yourJsonString, MyJson.class); 
+1
source
 JsonParser parser = new JsonParser(); JsonObject object = (JsonObject)parser.parse(yourString); for (Map.Entry<String,JsonElement> entry : object.entrySet()) { JsonArray array = entry.getValue().getAsJsonArray(); for (JsonElement elementJSON : array) { [...] } } 
0
source

Source: https://habr.com/ru/post/1495932/


All Articles