我試圖解析該FCM消息和構建Java對象FCM消息使用GSON
在FirebaseMessageService
解析到Java類的有效載荷進行解析如下
// 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