使用基于 Java 的处理语言读取 JSON 数据



我正在使用处理语言来读取json文件,解析它,并将一些值存储在本地对象中。但是,我的问题是在我不知道键时如何读取值。例如:当我提供密钥时,我可以像这样阅读它:

String[] Keys ={"key1","key2"};
JSONArray json = loadJSONArray(filename);
int noItems = json.size();  
JSONArray[] list = new JSONArray[noItems];
list[i] = json.getJSONArray(Keys[i]);

但是,由于我不能总是知道密钥,我希望能够读取数据。由于处理语言基于 Java,我尝试使用迭代器来浏览文件,但我收到一个编译器错误,指出无法将对象转换为迭代器。这些是我迄今为止不成功的尝试:

import java.util.Iterator;
...
Iterator<String> keys= json.iterator().keys();
Iterator i = json.iterator();
Iterator<?> keys = json.values();

任何人都可以帮助我找到一种使用这种语言读取 json 文件的有效/动态方法吗?

在此文档参考中,它说有两种方法可以产生:

  • 键的迭代器:JSONObject::keyIterator
  • 一组所有键:JSONObject::keys

选择你想要的那个,祝你好运。

根据答案,这是一种读取和解析 json 文件的简单方法:

  json = loadJSONObject(filename);
  JSONObject o = (JSONObject) json;   
  Set keyset = o.keys();
  Iterator<String> keys = keyset.iterator();
  while( keys.hasNext() ) {    
      String key = (String)keys.next();
      JSONArray newlist = o.getJSONArray(key);
  }

最新更新