I need to parse JSON:
{
"Store":"GooglePlay",
"TransactionID":"here_is_google_transaction_id",
"Payload":"{"json":"{"packageName":"com.myapp.mypackage","productId":"com.myapp.mypackage.myproductid","purchaseTime":1489056122448,"purchaseState":0,"purchaseToken":"here_is_my_purchase_token"}",
"signature":"here_is_signature_g=="}"}
I need to get "Payload" attributes like "packageName", "productId" and so on. How can i do that with java?
I tried to use JsonParser:
private static final void readJson(String json) {
JsonParser parser = new JsonParser();
JsonElement jsonElement = parser.parse(json);
JsonObject rootObject = jsonElement.getAsJsonObject(); //get whole json object
String store = rootObject.get("Store").getAsString(); //get store attribute value
JsonObject childObject = rootObject.getAsJsonObject("Payload"); //get payload json object from root object
String packageName = childObject.get("packageName").getAsString();
System.out.println(store + " " + packageName);
}
But it throws an error when i'm trying to get the "Payload" object content:
Exception in thread "main" java.lang.ClassCastException: com.google.gson.JsonPrimitive cannot be cast to com.google.gson.JsonObject
at com.google.gson.JsonObject.getAsJsonObject(JsonObject.java:191)