c# - 将 JToken 内容反序列化为对象

标签 c# json salesforce json.net asp.net-web-api2

我想将 JToken 内容反序列化为一个对象(User)。我怎么能做到这一点?

这是我的 json 字符串:

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

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

用户类别:

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 方法:

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)

服务器 API 代码:

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

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

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;

对象被转换为用户数组,没有任何问题。

关于c# - 将 JToken 内容反序列化为对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28492098/

相关文章:

c# - 数据绑定(bind)到对象 - 如何更新对象/绑定(bind)?

javascript - 具有持久数据的 Web Worker

Salesforce OAuth 2.0 API : get refresh_token with authorization URL launched in a normal browser

python - 问 : Simple-Salesforce make a dynamic soql query

c# - 随机输出文件夹中的文件

c# - 如何克隆微软图表控件?

c# - 需要了解重载的构造函数

json - 使用 Swift 从 JSON 中仅提取一些字段

javascript - JQuery AJAX 请求显示 AJAX 和 PHP 错误

ruby-on-rails - 使用外部 api (salesforce) 在 Rails 应用程序中将变量设置为字段映射组