Invalid JSON pattern (JSON001)
Property | Value |
---|---|
Rule ID | JSON001 |
Title | Invalid JSON pattern |
Category | Style |
Subcategory | N/A |
Applicable languages | C#, Visual Basic |
Options | See Options section. |
Overview
This rule flags places where a JSON literal string does not conform to required syntax. The rule applies to identified JSON, which is determined by the inclusion of an inline comment or comment preceding the JSON string, such as //lang=json
or //lang=json,strict
. The latter comment uses strict mode for JSON interpretation.
This rule is IDE-only and not applicable for command-line scenarios.
Options
Options specify the behavior that you want the rule to enforce.
For code recognized as JSON, you set the options in Visual Studio by selecting Tools > Options > Text Editor > C# | Visual Basic > Advanced. The following options are available under the JSON strings section:
Property | Description |
---|---|
Colorize JSON strings | Specifies whether to colorize JSON strings. |
Report invalid JSON | Specifies whether to report invalid JSON. |
Highlight related components under cursor | Specifies whether Quick Actions uses highlighting. |
Example
The following code snippet shows an example with invalid JSON.
// Code with violations
// lang=json,strict
var v = """{ "pie": true, "cherry": [1, 2, 3 }""";
// Fixed code
// lang=json,strict
var v = """{ "pie": true, "cherry": [1, 2, 3] }""";
// Code with violations
//lang=json,strict
var v = """
{
"pie": true,
// Comments not allowed in strict mode
"cherry": [1, 2, 3]
}
""";
// Fixed code
//lang=json
var v = """
{
"pie": true,
// Comments allowed if not using strict mode
"cherry": [1, 2, 3]
}
""";
Suppress a warning
If you want to suppress only a single violation, add preprocessor directives to your source file to disable and then re-enable the rule.
#pragma warning disable JSON001
// The code that's violating the rule is on this line.
#pragma warning restore JSON001
To disable the rule for a file, folder, or project, set its severity to none
in the configuration file.
[*.{cs,vb}]
dotnet_diagnostic.JSON001.severity = none
For more information, see How to suppress code analysis warnings.