You applied JSON formatting to a SharePoint list or library column, but the column displays plain text or no formatting at all. This problem usually occurs because the JSON code contains a syntax error, the column type does not support the formatting rule, or the browser cache is blocking the rendering. This article explains the common root causes of JSON formatting failures and provides step-by-step methods to diagnose and fix the issue.
JSON column formatting in SharePoint uses a specific schema that must be valid and match the target column type. When the code has a missing comma, incorrect property name, or unsupported operator, SharePoint silently fails to apply the formatting. You will learn how to validate your JSON, check column compatibility, and clear rendering blockers so your formatting displays correctly.
By following the instructions below, you can identify the exact line causing the failure and apply a reliable fix. The guide also covers related issues such as formatting not updating after edits and formatting disappearing after site migration.
Key Takeaways: Diagnosing JSON Column Formatting Failures
- JSON formatter in SharePoint > Column > Format this column: Opens the JSON editor where you must paste your code and validate it live.
- JSON validator at jsonlint.com: Use this external tool to check for syntax errors like missing commas or brackets.
- Column type check in list settings: JSON formatting only works on supported types: Single line of text, Number, Choice, Person, and Date/Time.
Why JSON Column Formatting Fails to Render
SharePoint uses a JSON schema that defines how column values appear in list views. When you paste JSON code into the formatting pane, SharePoint parses it and applies the rules. If the code has any syntax error — such as a missing comma, extra bracket, or misspelled property name — the parser stops and reverts to the default plain text display. The browser does not show an error message by default, which makes the problem hard to spot.
A second common cause is column type mismatch. The JSON formatting schema includes conditional operators like ==, contains, and startsWith. These operators require a specific data type. For example, you cannot use startsWith on a Number column because numbers do not support string methods. Similarly, the @currentField token must match the column type you are formatting.
Browser caching can also cause stale formatting to display even after you save correct JSON. SharePoint stores formatting in the browser cache for performance. If the cache is not cleared, the old version continues to show. This is common after editing the JSON multiple times in quick succession.
Supported Column Types for JSON Formatting
The following column types support JSON formatting:
- Single line of text
- Number
- Choice (single-select only)
- Person or Group (single-select)
- Date and Time
- Yes/No
- Hyperlink or Picture
Column types that do NOT support JSON formatting include: Multiple lines of text, Lookup, Managed Metadata, Currency (use Number instead), and Calculated columns. If you apply formatting to an unsupported column, SharePoint ignores the code entirely.
Steps to Diagnose and Fix JSON Column Formatting Not Rendering
Follow these steps in order. Each step eliminates one possible cause.
- Validate the JSON syntax using an external tool
Open a JSON validator such as jsonlint.com. Copy the entire JSON code from your column formatting pane and paste it into the validator. Click the Validate button. If the validator shows an error, note the line number and the message. Common errors include: missing comma between properties, extra trailing comma, mismatched brackets, and unquoted property names. Fix the error in your code editor, then re-validate until the JSON is valid. - Check the column type in list settings
Go to the list that contains the column. Select the gear icon and choose List settings. Locate the column name under the Columns section. Click the column name and verify the Type field. If the type is not in the supported list above, JSON formatting will never render. Change the column type to a supported one, or create a new column with a compatible type and move your formatting there. - Review the JSON schema for operator mismatches
In your JSON code, look for operators like==,!=,contains,startsWith,length, andindexOf. Ensure the operator matches the column type. For a Number column, use==or!=with numeric values. For a text column, you can usecontainsorstartsWith. If you usestartsWithon a number, replace it with==and a numeric value. - Clear browser cache and reload the list
Press Ctrl+F5 (Windows) or Cmd+Shift+R (Mac) to force a hard reload of the page. This bypasses the browser cache and fetches the latest formatting from the server. If the formatting now appears, the issue was cache-related. To prevent future caching problems, open the list in an InPrivate or Incognito window while editing JSON formatting. - Test with a minimal JSON snippet
Replace your entire JSON code with this minimal example:{ "$schema": "https://developer.microsoft.com/json-schemas/sp/column-formatting.schema.json", "elmType": "div", "txtContent": "@currentField" }
Save the formatting. If the column now displays the field value inside a div, your original JSON has a structural error. Gradually add back your formatting rules one by one, testing after each addition, until you find the failing rule. - Verify the column is not hidden or removed from the view
In the list, select the dropdown arrow next to a column header and choose Column settings > Show/hide columns. Ensure the column you are formatting is checked. If it is hidden, the formatting will not render. Also check the view settings: go to the list, click the three dots next to All Items, and select Edit current view. Confirm the column is added to the view.
If JSON Formatting Still Has Issues After the Main Fix
Even after applying the steps above, some scenarios cause persistent rendering problems. The following subsections cover the most common ones.
JSON Formatting Works in Edit Mode but Not in View Mode
This happens when the JSON code references a field that does not exist in the current view. For example, if your formatting uses [$AssignedTo.title] but the AssignedTo column is not added to the view, SharePoint cannot resolve the reference. Add the missing column to the view by editing the view and selecting the column. Save the view and reload the list.
JSON Formatting Disappears After Site Migration or Copy
When you move a list between sites using PowerShell, third-party tools, or the Save as Template feature, the JSON formatting may not transfer. The formatting is stored in the column schema, which is not always exported. After migration, reapply the formatting manually. Open the column settings, select Format this column, and paste the original JSON code. Save the formatting.
JSON Formatting Renders Different on Mobile or Modern View
SharePoint renders JSON formatting differently in the modern list view versus the mobile app. Some CSS properties like padding, margin, and flex-direction behave inconsistently. To check mobile rendering, open the list on a mobile browser or use the browser developer tools to simulate a mobile viewport. Adjust your JSON to use relative units like em or percentage values instead of fixed pixel values.
JSON Column Formatting: Supported vs Unsupported Column Types
| Column Type | JSON Formatting Supported | Common Use Case |
|---|---|---|
| Single line of text | Yes | Conditional color coding based on text value |
| Number | Yes | Progress bars or conditional icons for thresholds |
| Choice | Yes | Status badges with custom colors per choice |
| Person or Group | Yes | Display user profile picture and name |
| Date and Time | Yes | Highlight overdue dates with red background |
| Yes/No | Yes | Show checkmark or cross icon |
| Hyperlink or Picture | Yes | Custom link button with hover effect |
| Multiple lines of text | No | Use Single line of text instead |
| Lookup | No | Create a calculated column to display lookup value |
| Managed Metadata | No | Use a text column with term ID instead |
| Calculated | No | Apply formatting directly to the source columns |
Now you can systematically diagnose why your JSON column formatting does not render. Start by validating the syntax with an external tool and confirming the column type is supported. Use the minimal test snippet to isolate errors. Clear the browser cache after each edit. For persistent issues, check the view configuration and mobile compatibility. The next time you create a formatting rule, test it with a single condition first to avoid complex errors. Advanced tip: use the browser developer console (F12) and look for JSON-related errors in the Console tab while the list loads — SharePoint may log parsing failures there.