All Downloads are FREE. Search and download functionalities are using the official Maven repository.

jakarta.json.JsonWriter Maven / Gradle / Ivy

There is a newer version: 2.38.0
Show newest version
/*
 * Copyright (c) 2012, 2020 Oracle and/or its affiliates. All rights reserved.
 *
 * This program and the accompanying materials are made available under the
 * terms of the Eclipse Public License v. 2.0, which is available at
 * http://www.eclipse.org/legal/epl-2.0.
 *
 * This Source Code may also be made available under the following Secondary
 * Licenses when the conditions for such availability set forth in the
 * Eclipse Public License v. 2.0 are satisfied: GNU General Public License,
 * version 2 with the GNU Classpath Exception, which is available at
 * https://www.gnu.org/software/classpath/license.html.
 *
 * SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
 */

package jakarta.json;

import java.io.Closeable;

/**
 * Writes a JSON {@link JsonObject object} or {@link JsonArray array} structure
 * to an output source.
 *
 * 

The class {@link jakarta.json.Json} contains methods to create writers from * output sources ({@link java.io.OutputStream} and {@link java.io.Writer}). * *

* The following example demonstrates how write an empty JSON object: *

 * 
 * JsonWriter jsonWriter = Json.createWriter(...);
 * jsonWriter.writeObject(Json.createObjectBuilder().build());
 * jsonWriter.close();
 * 
 * 
* *

* The class {@link JsonWriterFactory} also contains methods to create * {@code JsonWriter} instances. A factory instance can be used to create * multiple writer instances with the same configuration. This the preferred * way to create multiple instances. A sample usage is shown in the following * example: *

 * 
 * JsonWriterFactory factory = Json.createWriterFactory(config);
 * JsonWriter writer1 = factory.createWriter(...);
 * JsonWriter writer2 = factory.createWriter(...);
 * 
 * 
*/ public interface JsonWriter extends /*Auto*/Closeable { /** * Writes the specified JSON {@link JsonArray array} to the output * source. This method needs to be called only once for a writer instance. * * @param array JSON array that is to be written to the output source * @throws JsonException if the specified JSON object cannot be * written due to i/o error (IOException would be cause of * JsonException) * @throws IllegalStateException if writeArray, writeObject, write or close * method is already called */ void writeArray(JsonArray array); /** * Writes the specified JSON {@link JsonObject object} to the output * source. This method needs to be called only once for a writer instance. * * @param object JSON object that is to be written to the output source * @throws JsonException if the specified JSON object cannot be * written due to i/o error (IOException would be cause of JsonException) * @throws IllegalStateException if writeArray, writeObject, write or close * method is already called */ void writeObject(JsonObject object); /** * Writes the specified JSON {@link JsonObject object} or * {@link JsonArray array} to the output source. This method needs * to be called only once for a writer instance. * * @param value JSON array or object that is to be written to the output * source * @throws JsonException if the specified JSON object cannot be * written due to i/o error (IOException would be cause of * JsonException) * @throws IllegalStateException if writeArray, writeObject, write * or close method is already called */ void write(JsonStructure value); /** * Closes this JSON writer and frees any resources associated with the * writer. This method closes the underlying output source. * * @throws JsonException if an i/o error occurs (IOException would be * cause of JsonException) */ /** * Writes the specified {@link JsonValue} to the output source. * method needs to be called only once for a write instance. * * @param value a {@code JsonValue} to be written to the output * source * @throws JsonException if the specified JSON object cannot be * written due to i/o error (IOException would be cause of * JsonException) * @throws IllegalStateException if writeArray, writeObject, write * or close method is already called * * @since 1.1 */ default void write(JsonValue value) { throw new UnsupportedOperationException(); } @Override void close(); }




© 2015 - 2024 Weber Informatics LLC | Privacy Policy