Achatando um objeto json complexo para ligação de mvc

Meu controlador está retornando um gráfico de objeto para a visualização no formato json como este

return Json(customer);

Na visão, meu objeto json se parece com isso

{
    Name: 'Joe',
    Budget: { Amount: 500, Spend: 100 }
}

Que mapeia corretamente para o meu objeto de cliente:

public class Customer 
{
    public string Name {get;set;}
    public Budget Budget{get;set;} 
}

public class Budget  
{
    public decimal Amount{get;set;}    
    public decimal Spend{get;set;} 
}

Eu quero passar o mesmo objeto json de volta para outro método no controlador com esta assinatura:

public ActionResult Method(Customer customer)

Quando eu faço esse nome, o cliente é preenchido, mas não a classe Budget, pelo que entendi porque o modelbinder espera: {Nome: 'Joe', 'Budget.Amount': 500, 'Budget.Spend': 100}

Portanto, tenho as seguintes opções: 1. Posso retornar o objeto json no formato desejado, mas não sei como, porque você não pode fazer isso:

return Json(new { Budget.Amount= 500})
Eu posso achatar o objeto json no lado do cliente. Existem plugins ou métodos para fazer isso?

questionAnswers(3)

yourAnswerToTheQuestion