package javax.json;
import java.io.InputStream;
import java.io.Reader;
import java.nio.charset.Charset;
import java.util.Map;
/**
* 目的:创建{@link javax.json.JsonReader}实例
*
* <p>工厂创建{@link javax.json.JsonReader}实例。工厂实例配置都是相同点的,可以使用该
* 配置创建JsonReader实例。
*
* <p>{@link Json}的方法createReader()也可以创建JsonReader实例。若果需要创建
* 多个JsonReader实例,则优先选择工厂方法创建。例如:
* JsonReaderFactory factory = Json.createReaderFactory(...);
* JsonReader reader1 = factory.createReader(...);
* JsonReader reader2 = factory.createReader(...);
*
* <p>该类所有的方法都是线程安全的。
* @author TCM
* @create 2017年11月3日上午8:55:49
*/
public interface JsonReaderFactory {
//字符流Reader创建JsonReader
JsonReader createReader(Reader reader);
//字节流InputStream创建JsonReader(与编码集有关)
JsonReader createReader(InputStream in);
JsonReader createReader(InputStream in, Charset charset);
//获取JsonReader配置属性的map
Map<String, ?> getConfigInUse();
}
package javax.json;
import java.io.Closeable;
/**
* 目的:从输入源中读成JsonObject或JsonArray对象
*
* <p>从输入源中读成{@link JsonObject object}或{@link JsonArray array}
*
* <p>该类含有创建JsonReader方法, 从输入源(如:InputStream或Reader)读取数据。
*
* <p>下面示范从string读取JSON数组:
* JsonReader jsonReader = Json.createReader(new StringReader("[]"));
* JsonArray array = jsonReader.readArray();
* jsonReader.close();
*
* <p>{@link JsonReaderFactory}含有创建JsonReader实例的方法。相同的配置中,
* 工厂实例可以创建多个JsonReader实例。
* @author TCM
* @create 2017年11月3日上午9:26:50
*/
public interface JsonReader extends /*Auto*/Closeable {
//输入源读成一个JSON数组或对象
JsonStructure read();
//输入源读成JSON对象
JsonObject readObject();
//输入源读成JSON数组
JsonArray readArray();
//关闭并释放资源
@Override
void close();
}