我无法解析下面包含对象数组的 JSON 流,这里我只添加了一个对象以进行简化。
{
"status": true,
"categories": [
{
"obj_cat_id": "26",
"session_user": "212233379",
"timestamp": "2011-10-30 04:34:53"
}
]
}
我尝试了什么:
try {
JsonFactory f = new JsonFactory();
JsonParser jp = f.createJsonParser(is);
jp.nextToken(); /* START_OBJECT */
while (jp.nextToken() != JsonToken.END_OBJECT) {
if ("status".equals(jp.getCurrentName())) {
jp.nextToken(); /* VALUE_TRUE */
status = jp.getText();
Constants.showLog("Status", jp.getText());
} else if ("categories".equals(jp.getCurrentName())) {
//jp.nextToken();
while (jp.nextToken() != JsonToken.END_ARRAY) {
//jp.nextToken();
while (jp.nextToken() != JsonToken.END_OBJECT) {
String namefieldOne = jp.getText();
Constants.showLog(TAG, namefieldOne);
}
}
}
}
jp.close();
主要问题是,当我在当前令牌为 START_ARRAY 的情况下执行 jp.nextToken 时,它直接转到 END_ARRAY 并且我无法访问其对象值。
我正在使用 Jackson Streaming 解析器来提高效率。