I am new to .NET Core. I am creating an API which returns some data in response. I have created a utility function successResponse to return a generic success response with data to client.
Here is the model class of that successResponse
public class SuccessResponse
{
    public object? payload { get; set; } = null;
    public bool success { get; set; } = false;
    public SuccessResponse(object data, bool isSuccess)
    {
        payload = data;
        success = isSuccess;
    }
}
I have also created a helper class that have a function to return successResponse like this
public static class ResponseHandler
{
    public static SuccessResponse successResponse(object data) 
    {
        return new SuccessResponse(data, true);
    }
    public static ErrorResponse errorResponse(string error)
    {
        return new ErrorResponse(error);
    }
} 
In my controller, I have code like this:
[HttpPost]
public async Task<IActionResult> GetIncomingFile(IFormFile file)
{
    try
    {
        var options = new JsonSerializerOptions { IncludeFields = true };
        List<ImportedFileData> importedExcelFileData = await ExcelMapperFileReader.getFileData(file);
        BalanceSheet balanceSheetData = BalanceSheetReport.createBalanceSheet(importedExcelFileData);
        return Ok(ResponseHandler.successResponse(JsonSerializer.Serialize(balanceSheetData, options)));
    }
    catch (Exception ex)
    {
        Console.WriteLine(ex.Message);
        return BadRequest(ResponseHandler.errorResponse(ex.Message));
    }
}
My model class BalanceSheet is like this
public class BalanceSheet
{
    public BalanceSheetAssets assets = null!;
    public BalanceSheetLiabilities liabilities = null!;
    public BalanceSheetEquity equity = null!;
    public BalanceSheet(BalanceSheetAssets incomingAssets, BalanceSheetLiabilities incomingLiabilities, BalanceSheetEquity incomingEquity)  
    {
        assets = incomingAssets;
        liabilities = incomingLiabilities;
        equity = incomingEquity;
    }
}
The problem is that I get this response on the client:
{
    "payload": "{\"assets\":{\"currentAssets\":[{\"title\":\"Inventory\",\"amount\":85300,\"code\":\"CA\"},{\"title\":\"Accounts Receivable\",\"amount\":4700,\"code\":\"CA\"},{\"title\":\"Cash\",\"amount\":5000,\"code\":\"CA\"}],\"nonCurrentAssets\":[{\"title\":\"Furniture\",\"amount\":200000,\"code\":\"NCA\"}],\"totalAssets\":255000},\"laibilities\":{\"currentLiabilities\":[{\"title\":\"Inventory\",\"amount\":85300,\"code\":\"CA\"},{\"title\":\"Accounts Receivable\",\"amount\":4700,\"code\":\"CA\"},{\"title\":\"Cash\",\"amount\":5000,\"code\":\"CA\"}],\"nonCurrentLiabilities\":[{\"title\":\"Furniture\",\"amount\":200000,\"code\":\"NCA\"}],\"totalLiabilities\":45000},\"equity\":{\"equityList\":[{\"title\":\"Equity\",\"amount\":150000,\"code\":\"EQ\"},{\"title\":\"Retained Earnings\",\"amount\":60000,\"code\":\"EQ\"}],\"totalEquity\":210000}}",
    "success": true
}
But I want to receive correctly formatted JSON response at the client.
How can I do that?