【问题标题】:how to convert hashmap values to string [duplicate]如何将哈希图值转换为字符串[重复]
【发布时间】:2017-11-22 14:52:44
【问题描述】:

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

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

【问题讨论】:

标签: java arrays json hashmap hashtable


【解决方案1】:

不要使用 (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

【讨论】:

    【解决方案2】:

    我建议你使用 Gson 库来管理 .json 文件。它更准确,更人性化,而且效果很好。

    顺便说一句,您要求 Java 打印对象“x”(迭代器)。一个对象包含对自身内存分配的引用。 您必须要求您的软件将其转换为人类可读的格式,例如 String 是。 所以尝试在 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());
                }
    

    希望对你有所帮助。

    【讨论】:

      猜你喜欢
      • 2012-07-05
      • 2020-12-05
      • 1970-01-01
      • 2019-08-26
      • 1970-01-01
      • 1970-01-01
      • 2016-10-21
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多