public class Jsr353JsonCodec extends TypeCodec<javax.json.JsonStructure>
More specifically, this codec maps an arbitrary JsonStructure to a CQL varchar
column.
This codec handles the Java type JsonStructure. It is therefore required that values
are set and retrieved using that exact Java type; users should manually downcast to either JsonObject or JsonArray, as in the example below:
// setting values
JsonObject myObject = ...
PreparedStatement ps = ...
// set values using JsonStructure as target Java type
BoundStatement bs = ps.bind().set(1, myObject, JsonStructure.class);
// retrieving values
Row row = session.execute(bs).one();
// use JsonStructure as target Java type to retrieve values
JsonStructure json = row.get(0, JsonStructure.class);
if (json instanceof JsonObject) {
myObject = (JsonObject) json;
...
}
Note that at runtime, this codec requires the presence of both JSR-353 API and a
JSR-353-compatible runtime library, such as JSR-353's reference implementation. If you use
Maven, this can be done by declaring the following dependencies in your project:
<dependency>
<groupId>javax.json</groupId>
<artifactId>javax.json-api</artifactId>
<version>1.0</version>
</dependency>
<dependency>
<groupId>org.glassfish</groupId>
<artifactId>javax.json</artifactId>
<version>1.0.4</version>
</dependency>
TypeCodec.AbstractCollectionCodec<E,C extends Collection<E>>, TypeCodec.AbstractMapCodec<K,V>, TypeCodec.AbstractTupleCodec<T>, TypeCodec.AbstractUDTCodec<T>, TypeCodec.PrimitiveBooleanCodec, TypeCodec.PrimitiveByteCodec, TypeCodec.PrimitiveDoubleCodec, TypeCodec.PrimitiveFloatCodec, TypeCodec.PrimitiveIntCodec, TypeCodec.PrimitiveLongCodec, TypeCodec.PrimitiveShortCodec| Constructor and Description |
|---|
Jsr353JsonCodec()
Creates a new instance using a default configuration.
|
Jsr353JsonCodec(Map<String,?> config)
Creates a new instance using the provided configuration.
|
| Modifier and Type | Method and Description |
|---|---|
javax.json.JsonStructure |
deserialize(ByteBuffer bytes,
ProtocolVersion protocolVersion) |
String |
format(javax.json.JsonStructure value) |
javax.json.JsonStructure |
parse(String value) |
ByteBuffer |
serialize(javax.json.JsonStructure value,
ProtocolVersion protocolVersion) |
accepts, accepts, accepts, accepts, ascii, bigint, blob, cboolean, cdouble, cfloat, cint, counter, custom, date, decimal, duration, getCqlType, getJavaType, inet, list, map, set, smallInt, time, timestamp, timeUUID, tinyInt, toString, tuple, userType, uuid, varchar, varintpublic Jsr353JsonCodec()
public ByteBuffer serialize(javax.json.JsonStructure value, ProtocolVersion protocolVersion) throws InvalidTypeException
serialize in class TypeCodec<javax.json.JsonStructure>InvalidTypeExceptionpublic javax.json.JsonStructure deserialize(ByteBuffer bytes, ProtocolVersion protocolVersion) throws InvalidTypeException
deserialize in class TypeCodec<javax.json.JsonStructure>InvalidTypeExceptionpublic String format(javax.json.JsonStructure value) throws InvalidTypeException
format in class TypeCodec<javax.json.JsonStructure>InvalidTypeExceptionpublic javax.json.JsonStructure parse(String value) throws InvalidTypeException
parse in class TypeCodec<javax.json.JsonStructure>InvalidTypeExceptionCopyright © 2012–2018. All rights reserved.