@axync/extract-json
v1.0.2
Published
An utility to extract JSON object and array from a string.
Downloads
181
Readme
@axync/extract-json
Overview
@axync/extract-json
is a utility for extracting JSON objects and arrays from a raw string. This package is particularly useful when dealing with large or malformed JSON data where you need to extract valid JSON objects or arrays from a larger text.
This package only extracts Objects and Arrays from string.
Installation
You can install the package using npm:
npm install @axync/extract-json
Usage
The primary function provided by this package is extractJson
, which allows you to extract JSON objects and arrays from a raw string.
Example
import { extractJson } from '@axync/extract-json';
const rawString = `
Here is some text before a JSON object: {"key": "value"}
and another one: {"anotherKey": 123} and here is an array: [1, 2, 3]
`;
const jsonObjects = await extractJson(rawString);
console.log(jsonObjects);
// Output: [{ "key": "value" }, { "anotherKey": 123 }, [1, 2, 3]]
Extract with Limit
You can also specify a limit to control the number of JSON objects or arrays extracted:
const jsonObjects = await extractJson(rawString, 2);
console.log(jsonObjects);
// Output: [{ "key": "value" }, { "anotherKey": 123 }]
API
extractJson(rawString: string, limit?: number): Promise<any[]>
- rawString: The string containing potential JSON objects or arrays.
- limit: (Optional) The maximum number of JSON objects/arrays to extract. Defaults to
Infinity
.
Returns: A Promise
that resolves to an array of extracted JSON objects and arrays.
How It Works
Direct Parsing: The
JsonExtractor
class first attempts to directly parse the entire string as JSON.Finding Start Indexes: If direct parsing fails, it scans the string for potential start indexes of JSON objects (
{
,[
) and arrays.Parsing Substrings: The class then attempts to parse substrings starting from each identified index, searching for valid JSON objects and arrays.
Extraction: The method returns an array containing all successfully extracted JSON objects and arrays.
Limitations
- This package only extracts JSON objects (
{}
) and arrays ([]
). It does not extract other JSON data types like strings, numbers, or booleans.
License
This project is licensed under the MIT License.