2016-07-20 57 views
0

我需要得到org.json.JSONObject(args)的響應。JAVA get Byte []嵌套在JSONObject中

new Emitter.Listener() { 
    @Override 
    public void call(Object... args) { 

     try { 
      JSONObject response = new JSONObject(args[0].toString()); 

      JSONObject data = (JSONObject) response.get("data"); 
      Object defaultResponce = data.get("default"); 

      Log.d(TAG, defaultResponce + ""); 
     } 
     catch (JSONException e) { 
      e.printStackTrace(); 
     } 
    } 
} 

Object defaultResponce = data.get("default");等同於10個字符,String "[[email protected]"

下面的圖像是在調試器中ARGS響應。我需要獲得指出的價值。 enter image description here

我該如何在調試器中檢索其值?

+0

你是如何得到一個JSON對象的字節數組? 'args [0] .toString()'包含什麼? – immibis

+0

這是來自Socket.io發出請求的響應。我期待它是一個更關鍵的價值對傑森 – Lonergan6275

+0

我真的不明白你的問題,但問題似乎是你把數組實例的「toString」輸出到JSON輸出,而不是數據的陣列。我想你需要顯式地將Java數組轉換爲JSON數組。 –

回答

2

我想你搞亂了一點......

Object defaultResponce = data.get("default"); 
Log.d(TAG, defaultResponce + ""); 

- >的Log.d打印參考(defaultResponce + 「」 轉換的byte []字符串)。這就是爲什麼你認爲這是一個字符串? 檢查出defaultResponce是否是byte []的實例或您正在查找的任何內容。

無論如何,如果標準API沒有返回你正在尋找的東西,你總是可以使用反射來到你想要的字段。