benjist
benjist

Reputation: 2881

Get plain old objects from FlatBuffers

I'm parsing a FlatBuffers binary file and create POJOs from the data (Plain Old Javascript Objects) for some reason.

In my .fbs file I have for example a geo_id defined as follows:

table Properties {
    geo_id:long;
    tags:[TagIndex];
}

In the javascript in my HTML I create a POJO feature object lie this:

function createFeature(rawFeature, cell) {
    var feature = {
        id: rawFeature.properties().geoId(),
        geometry: null,
        properties: {}
    }
    return feature;
 }

My expectation was that I get a plain number (long), but I'm getting an object with "low" and "high" where "low" seems to be the id. Though I'm a bit confused and would like to know the proper way to convert this data to plain old variables.

Upvotes: 0

Views: 152

Answers (1)

Aardappel
Aardappel

Reputation: 6074

A long is a 64-bit number which can't be represented natively in JS. To preserve the information, it is represented as 2 32-bit numbers.

If you are really using all the bits in a long, then there's no way to convert it to a single number safely. If the high bits are all 0, then you could use just the low bits to represent it as a single number in JS.

You may want to use int in your schema for convenience if you don't need the high bits.

Upvotes: 0

Related Questions