2014-10-10 15 views
0

測試代碼片段就像下面的的JSONObject(地圖的copyfrom)構建與Genymotion等模擬器

Map<String, Object> jsonMap = new HashMap<String, Object>(); 
    ArrayList<Long> list = new ArrayList<Long>(); 
    list.add(1L); 
    list.add(2L); 
    jsonMap.put("list", list); 
    JSONObject json = new JSONObject(jsonMap); 

    JSONArray ja = new JSONArray(list); 
    try { 
     json.put("JSONArray", ja); 
    } catch (JSONException e) { 
     e.printStackTrace(); 
    } 

    if (json != null) { 
     System.out.println(json.toString()); 
     return; 
    } 

與Genymotion

{"JSONArray":[1,2],"list":"[1, 2]"} 

的輸出與ADT仿真器或我之間的不同結果函數工作nexus 4手機是

{"JSONArray":[1,2],"list":[1,2]} 

會發生什麼?

+0

它不在我的genymotion。你試圖使用哪種genymotion版本和android版本? – pcans 2014-10-13 16:49:59

回答

2

我終於在4.1.1 Genymotion設備上覆制了你的問題,但也在4.1.1真實物理設備上,如下圖所示:(samsung galaxy s2 running cyanogen)。

Samsung Galaxy S2 physical device

所以,我把這種行爲Genymotion功能。 ;) 您將在4.1.2 ADT仿真器上看到相同的行爲。

您可能正在經歷Android版本之間的差異。你必須處理這兩個案例以保證安全。

+0

我用另一種方法來避免這個問題,謝謝你,但是我對這個不同的工具有興趣。我讀了這個類的Android源代碼,但是沒有想法。你能幫我指出嗎? – jerry 2014-10-15 04:06:31

+0

@pcans,謝謝那麼多代碼片段:) – 2015-02-21 11:13:30

相關問題