将JToken内容反序列化为对象 [英] Deserializing JToken content to an Object

查看:1976
本文介绍了将JToken内容反序列化为对象的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我想将JToken内容反序列化为对象(User).我该怎么做?

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

这是我的json字符串:

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

这将作为JToken发送到api参数.

This being sent to an api parameter as JToken.

用户类别:

public class user
{
    public int UserId {get; set;}
    public string Username {get; set;}
    public string FirstName {get; set;}
    public string LastName {get; set;}
}

网络Api方法:

public IHttpActionResult Post([FromBody]JToken users)
{
       UserModel.SaveUser(users);
       //...
}

Salesforce中的API调用:

string json = '[{"UserId":0,"Username":"jj.stranger","FirstName":"JJ","LastName":"stranger"}];
HttpRequest req = new HttpRequest();
HttpResponse res = new HttpResponse();
Http http = new Http();

req.setEndpoint('test.com/api/UserManagement');
req.setMethod('POST');
req.setBody(json);
req.setHeader('Content-Type', 'application/json');

try {
    res = http.send(req);
} catch(System.CalloutException e) {
    System.debug('Callout error:' + e);
}

System.debug(res.getBody());

推荐答案

您可以使用JToken.ToObject泛型方法. http://www.nudoq .org/#!/Packages/Newtonsoft.Json/Newtonsoft.Json/JToken/M/ToObject(T)

You can use JToken.ToObject generic method. http://www.nudoq.org/#!/Packages/Newtonsoft.Json/Newtonsoft.Json/JToken/M/ToObject(T)

服务器API代码:

 public void Test(JToken users)
 {
     var usersArray = users.ToObject<User[]>();
 }

这是我使用的客户端代码.

Here is the client code I use.

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;

该对象被转换为Users数组,没有任何问题.

The object gets converted to Users array without any issues.

这篇关于将JToken内容反序列化为对象的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆