使用基于 Java 的处理语言读取 JSON 数据
Read JSON data with Java-based Processing language
我正在使用 Processing language 读取 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 文件的 effective/dynamic 方法?
在this documentation reference中它说有两种方法产生:
- 键的迭代器: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);
}
我正在使用 Processing language 读取 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 文件的 effective/dynamic 方法?
在this documentation reference中它说有两种方法产生:
- 键的迭代器: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);
}