C# – JSON object contains a trailing comma at the end which is not supported

Problem

When you deserialize JSON, you get the following error:

The JSON object contains a trailing comma at the end which is not supported in this mode. Change the reader options.

JSON properties are separated with commas. A trailing comma is one that has no properties after it. Here’s an example of a trailing comma:

{
    "id":123,
    "title":"Jurassic Park",
}
Code language: JSON / JSON with Comments (json)

This is technically invalid JSON (according to the official JSON spec), but it’s really not a good reason for deserialization to fail. You can update the serializer to allow trailing commas.

Solution

To allow trailing commas, set the AllowTrailingCommas property in JsonSerializerOptions to true, and use this options object during deserialization. Here’s an example:

using System.Text.Json;

var movieJson = "{\"id\":123,\"title\":\"Jurassic Park\",}";

var options = new JsonSerializerOptions()
{
    AllowTrailingCommas = true
};

var movie = JsonSerializer.Deserialize<Movie>(movieJson, options);
Code language: C# (cs)

Note: If you’re using ASP.NET Core, read how to change the JSON serialization settings.

Leave a Comment