then adding the second code sample produces the same json however this time nested fields are showing {} instead on the data
do you mean WriteIndented
doesn't work?Could you share an example with the model:
public class Employee
{
public string? Name { get; set; }
public Employee? Manager { get; set; }
public List<Employee>? DirectReports { get; set; }
}
If the default handler can't meet your requirement,you could create a handler follow this document:
public class MyReferenceResolver : ReferenceResolver
{
.......
}
class MyReferenceHandler : ReferenceHandler
{
public MyReferenceHandler() => Reset();
private ReferenceResolver? _rootedResolver;
public override ReferenceResolver CreateResolver() => _rootedResolver!;
public void Reset() => _rootedResolver = new MyReferenceResolver();
}
var myReferenceHandler = new MyReferenceHandler();
builder.Services
.AddControllers()
.AddJsonOptions(options =>
{
options.JsonSerializerOptions.ReferenceHandler =myReferenceHandler;
//options.JsonSerializerOptions.DefaultIgnoreCondition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingNull; // Optional
options.JsonSerializerOptions.WriteIndented = true; // For formatting
});