タイプjava.lang.Stringの値バンドルはJSONArrayに変換できません

アンキットナゲバディヤ

以下はサーバーからの私の応答です

    [
{
"updates":[
{
"id":6,
"name":"Food Express",
"photo":"http:\/\/www.abc.org\/development\/data\/restaurant\/1451480096.jpg",
"updates":"testing updatessss"
}
],
"count":0
},
{
"updates":[
{
"id":96,
"name":"Madras cafe",
"photo":"http:\/\/www.abc.org\/development\/img\/res-bg.jpg",
"updates":"asdfasdfsafasdfsa"
},
{
"id":96,
"name":"Madras cafe",
"photo":"http:\/\/www.abc.org\/development\/img\/res-bg.jpg",
"updates":"vcxvzxvzx"
}
],
"count":4
}
]

これがAndroidで解析したJSON応答ですが、エラーが発生します。

これが私のAndroidコードです

  JSONArray jsonarray = new JSONArray(response);
       Log.e("Hello","Hi"+jsonarray);
         for (int i = 0; i < jsonarray.length(); i++) {
    JSONObject jsonObjectmain = jsonarray .getJSONObject(i);
        JSONArray array = jsonObjectmain.getJSONArray("updates");
        for (int j = 0; j < array.length(); j++) {
         JSONObject jsonObject = array.getJSONObject(j);
         String id = jsonObject.getString("id").toString();
         String name = jsonObject.getString("name").toString();
         String photo = jsonObject.getString("photo").toString();
         String updates = jsonObject.getString("updates").toString();

        }      
         }

これをonMessage()メソッドのpushnotificationに入れたいのですが、できません。

これが私のスタックトレースです...

07-02 13:08:53.553: W/System.err(19037): org.json.JSONException: Value Bundle of type java.lang.String cannot be converted to JSONArray
07-02 13:08:53.553: W/System.err(19037):    at org.json.JSON.typeMismatch(JSON.java:111)
07-02 13:08:53.553: W/System.err(19037):    at org.json.JSONArray.<init>(JSONArray.java:96)
07-02 13:08:53.553: W/System.err(19037):    at org.json.JSONArray.<init>(JSONArray.java:108)
07-02 13:08:53.553: W/System.err(19037):    at com.abc.ff.GCMIntentService.parseList(GCMIntentService.java:117)
07-02 13:08:53.553: W/System.err(19037):    at com.abc.ff.GCMIntentService.onMessage(GCMIntentService.java:63)
07-02 13:08:53.553: W/System.err(19037):    at com.google.android.gcm.GCMBaseIntentService.onHandleIntent(GCMBaseIntentService.java:223)
07-02 13:08:53.553: W/System.err(19037):    at android.app.IntentService$ServiceHandler.handleMessage(IntentService.java:65)
07-02 13:08:53.553: W/System.err(19037):    at android.os.Handler.dispatchMessage(Handler.java:102)
07-02 13:08:53.553: W/System.err(19037):    at android.os.Looper.loop(Looper.java:149)
07-02 13:08:53.553: W/System.err(19037):    at android.os.HandlerThread.run(HandlerThread.java:61)

これが私のonMessage()方法です...

@Override
    protected void onMessage(Context context, Intent data) {

        String message; 

         message = data.getExtras().getString("updates");

         Log.e("",""+data.getExtras().toString());

        Intent intent = new Intent(this, MyActivity.class);
        parseList(data.getExtras().toString());

        PendingIntent pIntent = PendingIntent.getActivity(this, 0, intent,
                PendingIntent.FLAG_UPDATE_CURRENT);

        Notification notification = new Notification.Builder(this)
                .setSmallIcon(R.drawable.ic_launcher)
                .setWhen(System.currentTimeMillis())
                .setContentTitle("Title")
                .setContentText(message).setContentIntent(pIntent)
                .getNotification();

        notification.defaults |= Notification.DEFAULT_SOUND;
        notification.flags |= Notification.FLAG_AUTO_CANCEL;

        NotificationManager manager = (NotificationManager) getSystemService(NOTIFICATION_SERVICE);
        manager.notify(R.string.app_name, notification);

        {

            PowerManager pm = (PowerManager) context
                    .getSystemService(Context.POWER_SERVICE);
            final PowerManager.WakeLock mWakelock = pm.newWakeLock(
                    PowerManager.FULL_WAKE_LOCK
                            | PowerManager.ACQUIRE_CAUSES_WAKEUP, "GCM_PUSH");
            mWakelock.acquire();
            notification.defaults|=Notification.DEFAULT_VIBRATE;


            Timer timer = new Timer();
            TimerTask task = new TimerTask() {
                public void run() {
                    mWakelock.release();
                }
            };
            timer.schedule(task, 5000);
        }

    }
Ashish ranjan

BundleはあなたGCMIntentServiceが持っているJsonObject持っていないあなたの中受け取っていると思いますJsonArrayあなたはこのように変換するBundle必要JsonObjectがあります:

JSONObject json = new JSONObject();
Set<String> keys = bundle.keySet();
for (String key : keys) {
   try {
       json.put(key, bundle.get(key)); 
   } catch (JSONException e) {
       e.printStackTrace();
   }
}

次に、次のように通常の処理を行うことができます。

JSONArray jsonarray = new JSONArray(json.getString("response"));
Log.e("Hello","Hi"+jsonarray);
for (int i = 0; i < jsonarray.length(); i++) {
    JSONObject jsonObjectmain = jsonarray .getJSONObject(i);
    JSONArray array = jsonObjectmain.getJSONArray("updates");
    for (int j = 0; j < array.length(); j++) {
         JSONObject jsonObject = array.getJSONObject(j);
         String id = jsonObject.getString("id").toString();
         String name = jsonObject.getString("name").toString();
         String photo = jsonObject.getString("photo").toString();
         String updates = jsonObject.getString("updates").toString();

    }      
}

更新

parseListメソッドの引数タイプをからString変更してBundle、parseListメソッドを次のようにします。

parseList(Bundle bundle)

そして、置き換えるparseList(data.getExtras().toString());parseList(data.getExtras());

これで、parseList(Bundle bundle)メソッドで、上記のようにバンドルをjsonに変換できます

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

タイプjava.lang.Stringの値[string] <br> [string] <br>はJSONArrayに変換できません

分類Dev

タイプjava.lang.Stringの値はAndroid(repost)でJSONArrayに変換できません

分類Dev

org.json.JSONException:タイプjava.lang.Stringの成功時の値0はJSONArrayに変換できません

分類Dev

タイプjava.lang.StringのJSON例外値接続をJSONArrayに変換できません

分類Dev

JSONArray java.lang.StringはJSONObjectに変換できません

分類Dev

java.lang.stringはJSONarrayに変換できません

分類Dev

タイプjava.lang.Stringの値は、http応答を渡すときにJSONObjectに変換できません

分類Dev

タイプjava.lang.Stringの値<brは、AndroidではJSONObjectに変換できません

分類Dev

タイプjava.lang.Stringの値データベースはJSONObjectに変換できません

分類Dev

Firestoreはjava.lang.Stringタイプの値を日付に変換できませんでした

分類Dev

org.json.JSONException:jsonstringをオブジェクトに変換している間、フィードバックタイプjava.lang.Stringの値をJSONArrayに変換できません

分類Dev

データの解析エラーorg.json.JSONException:タイプjava.lang.Stringの値<brをJSONArrayに変換できません

分類Dev

ネストされた例外はjava.lang.IllegalStateExceptionです:タイプ[java.lang.String]の値を必要なタイプに変換できません

分類Dev

W / System.err:org.json.JSONException:java.lang.String型の値CouldをJSONArrayに変換できません

分類Dev

org.json.JSONException:タイプjava.lang.Stringの値データをJSONObjectに変換できません

分類Dev

タイプjava.lang.Stringの値をintに変換できませんでしたか?

分類Dev

タイプjava.lang.Stringの値をlongに変換できませんでした

分類Dev

タイプjava.lang.Stringの値をintに変換できませんでした

分類Dev

SpringMVC-タイプ「java.lang.String」のプロパティ値を必要なタイプ「java.lang.Integer」に変換できませんでした

分類Dev

SpringMVC-タイプ「java.lang.String」のプロパティ値を必要なタイプ「java.lang.Integer」に変換できませんでした

分類Dev

値<html> <head> <title>タイプjava.lang.StringのApacheをJSONObjectに変換できません

分類Dev

@Value->タイプ 'java.lang.String'の値を必要なタイプ 'java.lang.Integer'に変換できませんでした

分類Dev

Spring NumberFormatException:タイプ 'java.lang.String'の値を必要なタイプ 'java.lang.Longに変換できませんでした

分類Dev

java.lang.String型の接続値はJSONObjectに変換できません

分類Dev

Get Org.json.JSONException:タイプjava.lang.StringのValue array(2)はJSONObjectに変換できません

分類Dev

DatabaseException:java.lang.StringタイプのオブジェクトをStreetClassタイプに変換できません

分類Dev

タイプ[java.lang.String]からタイプ[java.time.LocalDateTime]に変換できるコンバーターが見つかりませんでした

分類Dev

JAVA:互換性のないタイプ:intをjava.lang.Stringに変換できません

分類Dev

データの解析エラーorg.json.JSONException:値<br> <タイプjava.lang.StringのテーブルをJSONObjectに変換できません

Related 関連記事

  1. 1

    タイプjava.lang.Stringの値[string] <br> [string] <br>はJSONArrayに変換できません

  2. 2

    タイプjava.lang.Stringの値はAndroid(repost)でJSONArrayに変換できません

  3. 3

    org.json.JSONException:タイプjava.lang.Stringの成功時の値0はJSONArrayに変換できません

  4. 4

    タイプjava.lang.StringのJSON例外値接続をJSONArrayに変換できません

  5. 5

    JSONArray java.lang.StringはJSONObjectに変換できません

  6. 6

    java.lang.stringはJSONarrayに変換できません

  7. 7

    タイプjava.lang.Stringの値は、http応答を渡すときにJSONObjectに変換できません

  8. 8

    タイプjava.lang.Stringの値<brは、AndroidではJSONObjectに変換できません

  9. 9

    タイプjava.lang.Stringの値データベースはJSONObjectに変換できません

  10. 10

    Firestoreはjava.lang.Stringタイプの値を日付に変換できませんでした

  11. 11

    org.json.JSONException:jsonstringをオブジェクトに変換している間、フィードバックタイプjava.lang.Stringの値をJSONArrayに変換できません

  12. 12

    データの解析エラーorg.json.JSONException:タイプjava.lang.Stringの値<brをJSONArrayに変換できません

  13. 13

    ネストされた例外はjava.lang.IllegalStateExceptionです:タイプ[java.lang.String]の値を必要なタイプに変換できません

  14. 14

    W / System.err:org.json.JSONException:java.lang.String型の値CouldをJSONArrayに変換できません

  15. 15

    org.json.JSONException:タイプjava.lang.Stringの値データをJSONObjectに変換できません

  16. 16

    タイプjava.lang.Stringの値をintに変換できませんでしたか?

  17. 17

    タイプjava.lang.Stringの値をlongに変換できませんでした

  18. 18

    タイプjava.lang.Stringの値をintに変換できませんでした

  19. 19

    SpringMVC-タイプ「java.lang.String」のプロパティ値を必要なタイプ「java.lang.Integer」に変換できませんでした

  20. 20

    SpringMVC-タイプ「java.lang.String」のプロパティ値を必要なタイプ「java.lang.Integer」に変換できませんでした

  21. 21

    値<html> <head> <title>タイプjava.lang.StringのApacheをJSONObjectに変換できません

  22. 22

    @Value->タイプ 'java.lang.String'の値を必要なタイプ 'java.lang.Integer'に変換できませんでした

  23. 23

    Spring NumberFormatException:タイプ 'java.lang.String'の値を必要なタイプ 'java.lang.Longに変換できませんでした

  24. 24

    java.lang.String型の接続値はJSONObjectに変換できません

  25. 25

    Get Org.json.JSONException:タイプjava.lang.StringのValue array(2)はJSONObjectに変換できません

  26. 26

    DatabaseException:java.lang.StringタイプのオブジェクトをStreetClassタイプに変換できません

  27. 27

    タイプ[java.lang.String]からタイプ[java.time.LocalDateTime]に変換できるコンバーターが見つかりませんでした

  28. 28

    JAVA:互換性のないタイプ:intをjava.lang.Stringに変換できません

  29. 29

    データの解析エラーorg.json.JSONException:値<br> <タイプjava.lang.StringのテーブルをJSONObjectに変換できません

ホットタグ

アーカイブ