TinyBase logoTinyBase

setJson

The setJson method takes a string serialization of all of the Tables and Values in the Store and attempts to update them to those values.

setJson(tablesAndValuesJson: Json): Store
TypeDescription
tablesAndValuesJsonJson

A string serialization of all of the Tables and Values in the Store.

returnsStore

A reference to the Store.

From v3.0 onwards, the serialization should be of an array with two entries. The first is the Tables object, the second the Values. In previous versions (before the existence of the Values data structure), it was a sole object of Tables. For backwards compatibility, if a serialization of a single object is provided, it will be treated as the Tables type.

If the JSON cannot be parsed, this will fail silently. If it can be parsed, it will then be subject to the same validation rules as the setTables method (according to the Tables type, and matching any TablesSchema associated with the Store), and the setValues method (according to the Values type, and matching any ValuesSchema associated with the Store).

Examples

This example sets the tabular and keyed value contents of a Store from a serialization.

const store = createStore();
store.setJson('[{"pets": {"fido": {"species": "dog"}}}, {"open": true}]');
console.log(store.getTables());
// -> {pets: {fido: {species: 'dog'}}}
console.log(store.getValues());
// -> {open: true}

This example sets the tabular contents of a Store from a legacy single-object serialization (compatible with v2.x and earlier).

const store = createStore();
store.setJson('{"pets": {"fido": {"species": "dog"}}}');
console.log(store.getTables());
// -> {pets: {fido: {species: 'dog'}}}
console.log(store.getValues());
// -> {}

This example attempts to set both the tabular and keyed value contents of a Store from an invalid serialization.

const store = createStore();
store.setValuesJson('[{"pets": {"fido": {"species": "do');
console.log(store.getTables());
// -> {}
console.log(store.getValues());
// -> {}