Package

org.locationtech.geomesa.features.kryo

json

Permalink

package json

Visibility
  1. Public
  2. All

Type Members

  1. class JsonPathFilterFunction extends FunctionExpressionImpl with LazyLogging with VolatileFunction

    Permalink
  2. trait JsonPathPropertyAccessor extends PropertyAccessor

    Permalink

    Access values from a json-type string field.

    Access values from a json-type string field. Syntax must start with '$.'. The first part of the path selects the simple feature attribute, and the rest of the path selects within the json contained in that attribute.

    Note: this class is optimized for KryoBufferSimpleFeatures. It will work on standard simple features, but will incur a serialization cost.

Value Members

  1. object JsonPathParser

    Permalink

    Parses a json path string into a sequence of selectors.

    Parses a json path string into a sequence of selectors. See https://github.com/jayway/JsonPath for examples.

    Does not support filter predicates.

  2. object JsonPathPropertyAccessor extends JsonPathPropertyAccessor

    Permalink
  3. object KryoJsonSerialization extends LazyLogging

    Permalink

    Serializes into bson (http://bsonspec.org/).

    Serializes into bson (http://bsonspec.org/). Note this is a limited form of bson that only matches the existing json types - does not cover the bson extensions like binary data, etc. Also note endianness, etc might not match the spec 100%.

    Reduced BSON spec - only native JSON elements supported:

    byte 1 byte (8-bits) int32 4 bytes (32-bit signed integer, two's complement) int64 8 bytes (64-bit signed integer, two's complement) double 8 bytes (64-bit IEEE 754-2008 binary floating point)

    document ::= int32 e_list "\x00" BSON Document. int32 is the total number of bytes comprising the document. e_list ::= element e_list | "" element ::= "\x01" e_name double 64-bit binary floating point | "\x02" e_name string UTF-8 string | "\x03" e_name document Embedded document | "\x04" e_name document Array | "\x08" e_name "\x00" Boolean "false" | "\x08" e_name "\x01" Boolean "true" | "\x09" e_name int64 UTC datetime | "\x0A" e_name Null value | "\x10" e_name int32 32-bit integer | "\x11" e_name int64 Timestamp | "\x12" e_name int64 64-bit integer e_name ::= cstring Key name string ::= int32 (byte*) "\x00" String - The int32 is the number bytes in the (byte*) + 1 (for the trailing '\x00'). The (byte*) is zero or more UTF-8 encoded characters. cstring ::= (byte*) "\x00" Zero or more modified UTF-8 encoded characters followed by '\x00'. The (byte*) MUST NOT contain '\x00', hence it is not full UTF-8.

    Note: Array - The document for an array is a normal BSON document with integer values for the keys, starting with 0 and continuing sequentially. For example, the array ['red', 'blue'] would be encoded as the document {'0': 'red', '1': 'blue'}. The keys must be in ascending numerical order.

Ungrouped