Pass json POST data to Web API method and enumerate it

This is a very tricky problem.
I had to create a REST service that receives any json class and elaborates its properties and values without knowing anything about the object received.

Here the body posted

{"lastName":"Regoli", "firstName":"Andrea"}

And here the REST service’s code

public HttpResponseMessage Post([FromBody]dynamic values, string templateName, string destFileName = null)
{
    // posted values {"lastName":"Regoli", "firstName":"Andrea"}
    foreach (JProperty x in (JToken)values)
    { 
        string name = x.Name;
        //JToken value = x.Value;
        string strValue = x.Value.Value<string>();
    }
}

Another way to figure it out is receive a Dictionary but this means that the Json must be something like that

[{"Key":"lastName","Value":"Regoli"},{"Key":"firstName","Value":"Andrea"}]

And here the REST service’s code

public HttpResponseMessage Post([FromBody]Dictionary<string,string> values, string templateName, string destFileName = null)
{
    // posted values {"lastName":"Regoli", "firstName":"Andrea"}
    foreach (string k in values.Keys)
    { 
        string name = k;
        string strValue = values[k];
    }
}

Thery are quite different choose what you prefer or what you need.

Annunci

Informazioni su Andrea Regoli

Project Manager .Net Developer WPF WP7 Asp.Net c# javascript ajax SQL sharepoint
Questa voce è stata pubblicata in .Net, c#, REST e contrassegnata con , , . Contrassegna il permalink.

Rispondi

Inserisci i tuoi dati qui sotto o clicca su un'icona per effettuare l'accesso:

Logo WordPress.com

Stai commentando usando il tuo account WordPress.com. Chiudi sessione / Modifica )

Foto Twitter

Stai commentando usando il tuo account Twitter. Chiudi sessione / Modifica )

Foto di Facebook

Stai commentando usando il tuo account Facebook. Chiudi sessione / Modifica )

Google+ photo

Stai commentando usando il tuo account Google+. Chiudi sessione / Modifica )

Connessione a %s...