小编典典

有效地使用JSON流(在Java中)

json

我一直在使用JSONObjectJSONReader,但理想情况下,我正在寻找一种混合动力:)

特别是,给定JSON对象流(任意长的JSON数组的一部分),是否有一个帮助程序/库,它一次生成迭代器样式的“
JSONObject”,而无需读取其中的所有内容或不必解析单个原始字段(JsonReader )?

假设API的示例:

JsonReader reader = new JsonReader(new InputStreamReader(in, "UTF-8"));

reader.beginArray();
while (reader.hasNext()) 
{
  JSONObject obj = reader.readObject();
  // do something with 'obj'
}
reader.endArray();

上面,调用readObject解析一些复杂的JSON子树,并将其作为JSONObject返回。


阅读 354

收藏
2020-07-27

共1个答案

小编典典

javax.json.JSONParser

输出JSON的示例:

import javax.json.Json;
import javax.json.stream.JsonParser;
...
JsonParser parser = Json.createParser(new StringReader(jsonData));
while (parser.hasNext()) {
   JsonParser.Event event = parser.next();
   switch(event) {
      case START_ARRAY:
      case END_ARRAY:
      case START_OBJECT:
      case END_OBJECT:
      case VALUE_FALSE:
      case VALUE_NULL:
      case VALUE_TRUE:
         System.out.println(event.toString());
         break;
      case KEY_NAME:
         System.out.print(event.toString() + " " +
                          parser.getString() + " - ");
         break;
      case VALUE_STRING:
      case VALUE_NUMBER:
         System.out.println(event.toString() + " " +
                            parser.getString());
         break;
   }
}

Java
EE的教程19.4.1读JSON数据使用一个解析器
。它是JavaEE
7
API的一部分,但是可以从https://jsonp.java.net/download.html获得独立的jar

2020-07-27