NotebookLM JSON and XML Files: Prepare Structured Sources

Google Notebook does not accept JSON or XML files directly. Convert them to a supported format first, and keep the original source links in fenbs so nothing gets lost.

Updated 5 min read

Google Notebook (formerly NotebookLM) does not accept JSON or XML as a source format. To use data stored in those formats, you need to convert it into something Notebook supports — plain text, a PDF, a Google Doc or a Markdown file — before uploading. The conversion is straightforward once you know what to preserve.

Keeping a record of the original files alongside the converted versions matters for accuracy and reproducibility. A tool like fenbs lets you store the original source links, note what each file contains and track which converted version was actually uploaded.

What formats Google Notebook supports

Check the Google Notebook help center (opens in a new tab) for the current list of supported source types. As of the product's history, supported formats have included Google Docs, PDFs, plain text files, Markdown files, web page URLs, YouTube URLs and uploaded audio. JSON and XML are not on that list.

For related limits on source count and file size, see notebooklm alternatives for tools that handle a wider range of source types.

Turning a JSON file into a readable source

The goal is to give Notebook text that preserves the structure and meaning of the original data. A flat list of records converts well to a plain text or Markdown table. A nested JSON object with meaningful keys works best as a hierarchical Markdown document.

  1. Open the JSON file in a text editor or code editor. Read through the structure to understand the key names and the kind of values they hold.
  2. If the JSON is a list of similar records (for example, survey responses or product entries), convert it to a Markdown table with one column per key and one row per record.
  3. If the JSON has nested objects, represent the hierarchy with Markdown headings. A top-level key becomes an H2; nested keys become H3s below it.
  4. Replace technical key names with readable labels where the field's purpose is not obvious. Keep the original key names in parentheses so the source stays traceable.
  5. Save the result as a .md or .txt file, then upload it to Notebook as a plain text or Markdown source.

For small JSON files, you can paste the converted text directly into a Google Doc and add it to Notebook that way. For larger files, saving as Markdown and uploading as a file is faster.

Converting XML for use as a source

XML documents use tags to describe both structure and content. The conversion approach depends on how the XML is used. A configuration file with many empty tags may not be worth uploading at all. A document that uses XML for chapter headings, sections and paragraphs is closer to readable prose and converts more naturally.

For content-heavy XML — such as a DocBook document or an RSS feed — strip the tags and restructure the content as readable text. Use the tag names as a guide to which text is a heading, which is body copy and which is metadata. For XML with primarily structured data, follow the same table or hierarchy approach described for JSON above.

  • Identify which tags carry content and which are structural wrappers.
  • Convert heading-like tags (title, heading, chapter) to Markdown headings.
  • Convert list-like tags (item, entry, record) to Markdown list items or table rows.
  • Drop empty or purely technical tags that add no meaning to a reader.
  • Add a short note at the top of the converted file explaining what the original XML contained.

Preserving field names and hierarchy

When Notebook answers a question by quoting a value, it should be possible to trace that value back to a specific field in the original data. Keeping field names visible — either as column headers in a table or as subheadings in a document — makes that trace straightforward.

If you rename a field during conversion, add a note of the original name: "Customer status (field: account_state)". This matters when a result needs to be verified against the original JSON or XML, or when someone else uses the source without having seen the raw data.

Tracking sources across conversions

After converting a file, you have two versions: the original JSON or XML and the converted Markdown or plain text. A question that Notebook answers from the converted source should still be traceable to the original. Keeping both the source link and the conversion notes in one place makes that easy.

fenbs keeps those records as Links and listings on a project. Add the original file path or URL, note the conversion method, and add a link to the converted file. Any connected AI can read those notes and know exactly what was uploaded and what the original contained.

How fenbs helps

Keep originals and conversions together

Add the original JSON or XML source alongside the converted file as Links and listings on your fenbs project. Note any field renames or hierarchy changes. A connected AI can read those notes before working with the Notebook results and trace any answer back to the original data. Create a free account to try it.

Create a free account

Free for one person · No credit card · Works with Claude, ChatGPT, Cursor and more

How to do this with fenbs

  1. Create a free account and add a project for the work that uses this data.
  2. Under Links and listings, add the original JSON or XML file path or URL.
  3. Add a second entry for the converted file, with a note explaining what it is and how it was converted.
  4. Add a context note describing any field renames or structural changes made during conversion.
  5. Before asking an assistant to analyze Notebook results, ask it to read the project context so it knows what was converted and what the original fields mean.

fenbs does not connect to Google Notebook directly and will not track uploads automatically. The record you keep is as detailed as the notes you write.

Questions people ask.

Can Google Notebook read a JSON file directly?

No. Google Notebook does not accept JSON as a source format. Convert the JSON to a readable format — a Markdown table, a Google Doc or a plain text file — before uploading.

What is the best format for converting structured JSON data?

For a list of similar records, a Markdown or plain text table works well. For nested objects, use Markdown headings to represent the hierarchy. Keep field names visible so results can be traced back to the original data.

Does Google Notebook support XML files?

No. XML is not a supported source type. Convert XML to Markdown or plain text, preserving the structure through headings and lists, then upload the converted file.

How do I keep a converted file linked to its original?

Store both the original file path or URL and the converted file as links on the project, with a note explaining the conversion. Tools like fenbs let you record both alongside the project work so they are easy to find later.

What should I do if my JSON has deeply nested objects?

Use Markdown headings to represent the hierarchy, with each nesting level corresponding to a lower heading level. For very deep nesting, flatten repeated structures into a table and use headings only for the top-level groupings.

Start with one thing.

Free for one person · No credit card · Works with Claude, ChatGPT, Cursor and more

There is nothing to set up first. Write one line and you’ve started.