0 votes
1 view
in Salesforce by (11.9k points)

I want to deserialize JToken content to an object (User). How am I able to do this?

Here is my JSON string:

string json = @"[{""UserId"":0,""Username"":""jj.stranger"",""FirstName"":""JJ"",""LastName"":""stranger""}]";

This being sent to an api parameter as JToken.

User class:

public class user


    public int UserId {get; set;}

    public string Username {get; set;}

    public string FirstName {get; set;}

    public string LastName {get; set;}


Web Api Method:

public IHttpActionResult Post([FromBody]JToken users)





API Invocation in Salesforce:

string json = '[{"UserId":0,"Username":"jj.stranger","FirstName":"JJ","LastName":"stranger"}];

HttpRequest req = new HttpRequest();

HttpResponse res = new HttpResponse();

Http http = new Http();




req.setHeader('Content-Type', 'application/json');

try {

    res = http.send(req);

} catch(System.CalloutException e) {

    System.debug('Callout error:' + e);



1 Answer

0 votes
by (31.8k points)

Trying using JToken.ToObject generic method.

Here are the client and server code which will help you to solve this problem.

Server API Code:

public void Test(JToken users)


     var usersArray = users.ToObject<User[]>();


Here is the client code I used.

string json = "[{\"UserId\":0,\"Username\":\"jj.stranger\",\"FirstName\":\"JJ\",\"LastName\":\"stranger\"}]";

HttpClient client = new HttpClient();

var result = client.PostAsync(@"http://localhost:50577/api/values/test", new StringContent(json, Encoding.UTF8, "application/json")).Result;

The object will get converted to Users array without any issues.

Related questions

0 votes
1 answer
0 votes
1 answer
0 votes
1 answer
asked Oct 5, 2019 in SQL by Tech4ever (20.3k points)
0 votes
1 answer
Welcome to Intellipaat Community. Get your technical queries answered by top developers !