Я пытаюсь разобрать сообщение ТСМ и построить объект JavaFCM сообщение разбора класса Java с помощью GSON
В FirebaseMessageService
полезная нагрузка обрабатывается следующим образом
// Check if message contains a data payload.
if (remoteMessage.getData().size() > 0) {
Log.v(TAG, "Message data payload: " + remoteMessage.getData());
Map<String, String> params = remoteMessage.getData();
JSONObject object = new JSONObject(params);
Log.v(">>JSON_OBJECTTOSTRING ", object.toString())
Строка извлекается в {"message":"[{\"mName\":\"Milk\",\"mUnit\":\"1 Litre\"},{\"mName\":\"curd\",\"mUnit\":\"1 Litre\"}]"}
выше строка обрабатывается, как показано ниже в другом классе
JsonObject jo = new JsonParser().parse(order).getAsJsonObject();
JsonArray jsonArray = jo.getAsJsonArray("message");
itemList = new Gson().fromJson(jsonArray, GroceryItem[].class);
Получение этой ошибки при получении в виде массива, вызванного:
java.lang.ClassCastException: com.google.gson.JsonPrimitive не может быть приведен к com.google.gson.JsonArray
может ты помог мне?
Ваша строка json неверна. Строка Json должна быть такой '{\" message \ ": [{\" mName \ ": \" Milk \ ", \" mUnit \ ": \" 1 Liter \ "}, {\" mName \ ": \ "curd \", \ "mUnit \": \ "1 Liter \"}]} '. Я проанализировал эту строку json. Оно работает. – atiqkhaled