2014-10-10 17 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

相关问题