如何将hashmap值转换为字符串

时间:2017-06-20 07:33:40

标签: java arrays json hashmap hashtable

以下代码是打印哈希值而不是数组

 JSONObject myjson1 = new JSONObject(expectedResult);
                Iterator x = myjson1.keys();
                JSONArray jsonArray = new JSONArray();

                while (x.hasNext()){
                    String key = (String) x.next();
                    jsonArray.put(myjson1.get(key));
                    System.out.println(x);
                }

输出如下:

java.util.HashMap$KeyIterator@42a0b130
java.util.HashMap$KeyIterator@3c2a5fb9
java.util.HashMap$KeyIterator@6e68bc46
java.util.HashMap$KeyIterator@3223cb64
java.util.HashMap$KeyIterator@256c426b

PS:将Json转换为数组(键:值)形式

2 个答案:

答案 0 :(得分:0)

不要使用(String)而是使用toString() 所以

 String key = (String) x.next();
 jsonArray.put(myjson1.get(key));
 System.out.println(x.toString());

如果你想将它转换为字符串数组:

String[] result = jsonArray.values().toArray(new String[0]);

你可以查看这个: how to covert map values into string in Java

答案 1 :(得分:0)

我建议你使用Gson库来管理.json文件。它更准确,更加用户友好,效果非常好。

顺便说一句,你要求Java打印对象“x”(Iterator)。对象包含对其自身的内存分配的引用。 您必须要求您的软件以人类可读的格式转换它,例如String is。 因此,请尝试在 x 调用后添加 .toString()方法。

尝试做类似的事情:

JSONObject myjson1 = new JSONObject(expectedResult);
            Iterator x = myjson1.keys();
            JSONArray jsonArray = new JSONArray();

            while (x.hasNext()){
                String key = (String) x.next();
                jsonArray.put(myjson1.get(key));
                System.out.println(x.toString());
            }

我希望能提供帮助。