Local JSON Queries selects fields from your vault data

Run and save JMESPath queries on vault JSON or JSONL files.

MIT · no telemetry · core features free

A query result shows people with person, years, team and hours columns in a local table.
Open larger
version
1.1.0
released
downloads
18
review
Passed
health
Excellent
license
MIT
listed for
Desktop, Mobile
obsidian
1.13.4 or later

Phone and tablet use, live GitHub sign-in and paid sponsorship were not tested in this build.

Directory facts fetched from community.obsidian.md/users/theluckystrike.

About Local JSON Queries

You keep JSON exports in your vault and want to select fields or filter records without sending them to a service.

Local JSON Queries runs a JMESPath expression on a JSON or JSONL file in your vault. Inspect a table, object, array or scalar result. Save the file and expression together for repeat work.

A local query changes from a table to names and then a scalar countPlay demo

Free features

One file and one expression

Enter a vault file path and a JMESPath expression, then select Run query. Use @ to inspect the input value. Changing the path or expression clears the old result.

Tables and JSON copy

Arrays of objects appear as tables, with nested values shown as JSON text. Missing fields leave empty cells. Copy JSON uses the complete result, including rows omitted from the display.

JSONL and input errors

Each nonblank JSONL line becomes one value in an array. A damaged record stops the query and names its physical line. Blank lines still count toward that number.

Named queries

Save up to 100 named file and expression pairs. Selecting a name restores the pair, and saving that name again replaces it. Results themselves are not saved.

Queries, named pairs and JSON copy are free; several-file queries and new report files need Pro.

Pro features

Pro costs $5 a month or $15 one time through GitHub Sponsors. One sponsorship turns on Pro in every plugin that has it.

Several chosen files Pro

Run a saved expression on 1 to 20 chosen paths in file order. Arrays combine by one level, while scalar and object results add one item each. A failed file clears the combined result.

New report files Pro

Write the complete result as a new CSV or Markdown file at the vault root. An existing path stops the write. CSV quotes fields and prefixes text that could start a spreadsheet formula.

Set up Local JSON Queries

needs

  • Obsidian 1.13.4 or later

steps

  1. Put a JSON or JSONL file in your vault.

  2. Run Open JSON query view from the command palette.

  3. Enter the file path and a JMESPath expression, then select Run query.

  4. Save the pair with a name or select Copy JSON to copy the result.

If the app can't find a new plugin yet, try again later. Obsidian says a plugin that passes the review shows in the app within 24 hours.

How to query JSON files in Obsidian

Known limits of Local JSON Queries

  • This version supports JMESPath, not JSONPath, SQL, frontmatter scans or Bases output.
  • Input files have a 5 MiB limit and expressions have a 10,000-character limit.
  • Tables show up to 500 rows and 50 columns; cells show up to 2,000 characters.
  • Non-table arrays show up to 500 items and text displays up to 100,000 characters; copy and reports use the complete result.
  • Unsafe integers are rejected, and decimal values use JavaScript floating point.
  • Phone and tablet use, real clipboard writes, paid sponsorship and live GitHub sign-in were not tested.

Need a change for your team? I build custom Obsidian plugins and features.

Questions about Local JSON Queries

Does this support JSONPath expressions?

This version supports JMESPath only. JSONPath and SQL expressions are outside its scope.

Why do I see fewer rows than the result count?

Tables display up to 500 rows and 50 columns. Copy JSON and report files use the complete result.

Why does a long numeric identifier fail?

Integers outside the safe JavaScript range are rejected. Store long identifiers as JSON strings; decimal calculations still use floating point.

Does saving a query change my data?

The query reads your selected file, and saving a pair writes plugin settings. A Pro report creates a separate file and refuses an existing path.

Network use

After you choose Sign in with GitHub, github.com receives the public client ID, profile scope and device-flow polling requests. After sign-in, api.github.com receives an authenticated query for your sponsorship tier and total payment; neither host receives vault data. Successful checks last seven days; network failures can retry after six hours, and Refresh requests an earlier check.

Read the full network disclosure

Questions or ideas?

Tell me what is broken in Local JSON Queries, or what it should do next.

Send feedback

Local JSON Queries 1.1.0, MIT license

MIT · no telemetry · core features free