JAVA-json解析器-keys()解析未知的json格式?

时间:2018-11-27 09:20:42

标签: java json

我尝试解析一个简单的json字典,所以我阅读了许多有关如何实现此目的的教程和线程

但是没有为JSONObject或JSONArray定义“ keys()”或“ keySet()”

我在这里下载了库:

http://www.java2s.com/Code/Jar/j/Downloadjsonsimple111jar.htm

我开始怀疑我是否使用正确的库

这是我的代码:

import org.json.simple.parser.ParseException;
import org.json.simple.parser.JSONParser;
import org.json.simple.JSONArray;
import org.json.simple.JSONObject;

JSONParser parser = new JSONParser();
JSONObject obj = (JSONObject)parser.parse(json.trim());
Iterator keys = obj.keys(); <<<<<<<<<<<<<<<<<<<<<<<<<<<< keys() undefined
while(keys.hasNext()) {
    String key = keys.next();
}

json示例:

{a:132,b:"1321",test:"something"}

任何帮助表示赞赏

谢谢

2 个答案:

答案 0 :(得分:0)

您可以尝试以下方法:

JSONObject jsonArray = ...//get json object

Iterator<?> keys = jsonArray.keys();

while( keys.hasNext() ) {
    String key = (String) keys.next();
    System.out.println("Value: " + jsonArray.get(key));
    System.out.println("Key: " + key);
}

答案 1 :(得分:0)

我认为keySet().iterator()是您所需要的:

    JSONParser parser = new JSONParser();
    JSONObject obj = (JSONObject)parser.parse(json.trim());
    Iterator keys = obj.keySet().iterator();
    while(keys.hasNext()) {
        String key = (String)keys.next();
    }