Access values from a json-type string field.
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.
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.
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
KryoBufferSimpleFeature
s. It will work on standard simple features, but will incur a serialization cost.