UNPKG

@loaders.gl/json

Version:

Framework-independent loader for JSON and streaming JSON formats

32 lines (31 loc) 838 B
// loaders.gl // SPDX-License-Identifier: MIT // Copyright (c) vis.gl contributors import { makeTableFromData } from '@loaders.gl/schema'; export function parseJSONSync(jsonText, options) { try { const json = JSON.parse(jsonText); if (options.json?.table) { const data = getFirstArray(json) || json; return makeTableFromData(data); } return json; } catch (error) { throw new Error('JSONLoader: failed to parse JSON'); } } function getFirstArray(json) { if (Array.isArray(json)) { return json; } if (json && typeof json === 'object') { for (const value of Object.values(json)) { const array = getFirstArray(value); if (array) { return array; } } } return null; }