Вот подход, который работает с предоставленным вами вводом JSON, но более «полностью» десериализуется в дружественную структуру данных.
Выход
[ContainerData: success=true, reason=null, testString=some string, data=[Data: networks=[
[Network: networkId=1, networkName=some area, networkType=1],
[Network: networkId=4, networkName=another place, networkType=1]
]]]
public class Foo
{
static String jsonInput =
"{" +
"\"testString\":\"some string\"," +
"\"success\":true," +
"\"reason\":null," +
"\"data\":" +
"{" +
"\"networks\":" +
"[" +
"{\"networkId\":\"1\",\"networkName\":\"some area\",\"networkType\":1}," +
"{\"networkId\":\"4\",\"networkName\":\"another place\",\"networkType\":1}" +
"]" +
"}" +
"}";
public static void main(String[] args)
{
GsonBuilder gsonBuilder = new GsonBuilder();
Gson gson = gsonBuilder.create();
ContainerData container = gson.fromJson(jsonInput, ContainerData.class);
System.out.println(container);
}
}
class ContainerData
{
private boolean success;
private String reason;
private String testString;
private Data data;
@Override
public String toString()
{
return String.format(
"[ContainerData: success=%1$b, reason=%2$s, testString=%3$s, data=%4$s]",
success, reason, testString, data);
}
}
class Data
{
private Network[] networks;
@Override
public String toString()
{
return String.format(
"[Data: networks=%1$s]",
Arrays.toString(networks));
}
}
class Network
{
private String networkId;
private String networkName;
private int networkType;
@Override
public String toString()
{
return String.format(
"[Network: networkId=%1$s, networkName=%2$s, networkType=%3$d]",
networkId, networkName, networkType);
}
}