Colleagues I can not understand how to parse a query like this:

{ "result":0, "message":"Success", "serial":2, "type":"callback", "data": { "terminals": [ { "id":46, "name":"B2.0", "login":null, "is_free":true, "client_params":{ "video_camera_host":"videoslots.live", "video_camera_port":"1001" } }, { "id":48, "name":"B2.0", "login":null, "is_free":true, "client_params":{ "video_camera_host":null, "video_camera_port":null } } ] } } 

1 answer 1

Describe the structure of your JSON as classes:

 public class Response { public int result; public String message; public long serial; public String type; public Data data; } public class Data { public List<Terminal> terminals; } public class Terminal { public long id; public String name; public String login; public boolean isFree; public ClientParams clientParams; } public class ClientParams { public String videoCameraHost; public int videoCameraPort; } 

Then feed your string with JSON to gson, without forgetting to include support for snake_case in the field names:

  Response response = new GsonBuilder() .setFieldNamingPolicy(FieldNamingPolicy.LOWER_CASE_WITH_UNDERSCORES) .create() .fromJson(json, Response.class);