Java 如何将hashmap值转换为字符串

Java 如何将hashmap值转换为字符串,java,arrays,json,hashmap,hashtable,Java,Arrays,Json,Hashmap,Hashtable,下面的代码正在打印哈希值而不是数组 JSONObject myjson1 = new JSONObject(expectedResult); Iterator x = myjson1.keys(); JSONArray jsonArray = new JSONArray(); while (x.hasNext()){ String key = (String

下面的代码正在打印哈希值而不是数组

 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转换为数组(key:value)形式

不要使用(字符串),而是使用toString() 所以

如果要将其转换为字符串数组:

String[] result = jsonArray.values().toArray(new String[0]);
您可以检查这个:
我建议您使用Gson库来管理.json文件。它更准确,更人性化,效果也很好

顺便说一下,您要求Java打印对象“x”(迭代器)。对象包含对自身内存分配的引用。 您必须要求软件将其转换为人类可读的格式,例如字符串。 因此,尝试在调用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());
            }
我希望能有所帮助。

请参阅
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());
            }