在API 16中将Hasmap转换为JSONObject错误

时间:2016-06-21 15:55:06

标签: android

 HashMap<String,List> test=new HashMap<>();
 List<String> nn=new ArrayList<>();
 nn.add("jknlkn");
 nn.add("jijj");
 nn.add("ihohiol");
 test.put("gyi", nn);
 JSONObject jsonObject=new JSONObject();
 System.out.println(new JSONObject(new HashMap(test)));

logcat的:

  1. API 16设备(冰淇淋三明治)

    06-21 21:07:19.952 23465-23465 / com.miniapps.dolphinadmin I / System.out: {“gyi”:“[jknlkn,jijj,ihohiol]”}

  2. 输出错误

    1. API 23(Android M)

      06-21 21:07:19.952 23465-23465 / com.miniapps.dolphinadmin I / System.out: {“gyi”:[“jknlkn”,“jijj”,“ihohiol”]}

      < / LI>

      正确输出

      我的问题是为什么它在API 16中无法正常工作?

1 个答案:

答案 0 :(得分:1)

如果您有任何机会在代码中使用GSON库。您可以使用以下代码实现您的目标。

HashMap<String,List> test=new HashMap<>();
 List<String> nn=new ArrayList<>();
 nn.add("jknlkn");
 nn.add("jijj");
 nn.add("ihohiol");
 test.put("gyi", nn);
 Gson gson = new Gson();
  String json = gson.toJson(test);

这将始终提供预期的输出。