0.0.0 • Published 3 years ago

tabular-json-node v0.0.0

Weekly downloads
-
License
MPL-2.0
Repository
github
Last release
3 years ago

tabularjson

Convert JSON Data into tabular format And convert from Tabular to Binary format

How to use

const {
    jsonObjectToBuffer,
    bufferToJsonObject
} = require('tabular-json-node')

const dataAsObject = { "Hello": { "World": [1,2,3,4] } }

// JS Object -> Buffer data
const dataAsBuffer = jsonObjectToBuffer(dataAsObject)

// Buffer data -> JS Object
const parsedObject = bufferToJsonObject(dataAsBuffer)

Supported Data type

Type Name
undefined
null
boolean
number
bigint
string
array
object
symbol
function
uint8array

Object to Tabular

To convert JS Object to Object table

const {
    jsonObjectToTable
} = require('tabular-json-node')

const dataAsObject = { "Hello": { "World": [1,2,3,4] } }

// jsonObjectToTable function to convert JS Object to ObjectTable
const objectTable = jsonObjectToTable(dataAsObject)

Tabular to Binary

To convert Object table to Binary format

const {
    jsonObjectToTable,
    tableToBuffer
} = require('tabular-json-node')

const dataAsObject = { "Hello": { "World": [1,2,3,4] } }

const objectTable = jsonObjectToTable(dataAsObject)

// jsonObjectToTable function to convert ObjectTable to Binary format
const binaryObject = tableToBuffer(objectTable)

Now we reverse

Binary to Table

To convert Binary data to JS Table

/**
 * Binary representation for Object `{ hello: 'World' }`
 */
const binaryObject = new Buffer("020000000000000001000000070000000000000001000000020000000500050068656c6c6f05000000576f726c64", "hex")

const {
    bufferToTable
} = require('tabular-json-node')

// bufferToTable to convert Binary data/Buffer to JS Object
const objectTable = bufferToTable(binaryObject)

Tabular to Object

To convert Object table to JS Object

const binaryObject = new Buffer("020000000000000001000000070000000000000001000000020000000500050068656c6c6f05000000576f726c64", "hex")

const {
    bufferToTable,
    tableToJsonObject
} = require('tabular-json-node')

const objectTable = bufferToTable(binaryObject)

const parsedObject = tableToJsonObject(objectTable)

Binary Format

DataData TypeSize (Bytes)
NumberOfRowsUInt32LE4
Row 1 BufferBufferVariable
Row 2 BufferBufferVariable
Row 3 BufferBufferVariable
so on... for NumberOfRows

Buffer data Format for Row

DataData TypeSize (Bytes)
parentIdUInt32LE4
rowIdUInt32LE4
typeIdUInt16LE2
keyLengthUInt16LE2
keyLengthUInt16LE2
keyStringValueBufferKeyLength
dataLengthUInt32LE4
dataBufferdataLength