1
にデシリアライズする方法については、私はJSONの初心者ですが、Web APIのクラスに入れるのは苦労しています。私はこれまでこれを得るために郵便配達員を使いました:JSONをWeb APIからクラス
{
"$id": "1",
"id": 1,
"name": "Quick Entry",
"description": "General",
"trackerNumber": 1,
"taskType": 0,
"priority": 1,
"status": 0,
"isRecurring": 1,
"clientVisibility": null,
"dateCreated": "2015-05-04T11:45:58.867",
"dateModified": "2017-03-29T11:51:52.007",
"modifiedBySessionId": "f1a96bf3-7e08-4d44-b8a2-5eacf0adab01",
"hours": null,
"deliveryDate": null,
"discriminator": "",
"assignedToUserId": null,
"projectId": 1,
"clientId": 1,
"sortOrder": 4,
"isDeleted": false,
"folder": "33f16cea-7fb4-e511-80db-00155d001801",
"taskGroupId": 1,
"isNew": false
}
"task"は私が作ったクラスの名前です。そして、これは私のコードの背後にあります:
using (var httpClient = new HttpClient { BaseAddress = new Uri("http://localhost:45552/") })
{
httpClient.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", token.AccessToken);
var test = await httpClient.GetStringAsync("api/Tasks/1");
//task = JsonConvert.DeserializeObject<TaskInfo>(test);
Console.WriteLine(task.Name);
Console.ReadKey();
}
私はどのように逆シリアル化するのか分かりません。
class TaskInfo
{
[JsonProperty(PropertyName = "id")]
public int Id { get; set; }
[JsonProperty(PropertyName = "name")]
public string Name { get; set; }
[JsonProperty(PropertyName = "description")]
public string Description { get; set; }
[JsonProperty(PropertyName = "trackerNumber")]
public int TrackerNumber { get; set; }
[JsonProperty(PropertyName = "taskType")]
public int TaskType { get; set; }
[JsonProperty(PropertyName = "priority")]
public int Priority { get; set; }
[JsonProperty(PropertyName = "status")]
public int Status { get; set; }
[JsonProperty(PropertyName = "isRecurring")]
public int IsRecurring { get; set; }
[JsonProperty(PropertyName = "clientVisibility")]
public int ClientVisibility { get; set; }
[JsonProperty(PropertyName = "dateCreated")]
public DateTime DateCreated { get; set; }
[JsonProperty(PropertyName = "dateModified")]
public DateTime DateModified { get; set; }
[JsonProperty(PropertyName = "modifiedBySessionId")]
public string ModifiedBySessionId { get; set; }
[JsonProperty(PropertyName = "hours")]
public int Hours { get; set; }
[JsonProperty(PropertyName = "deliveryDate")]
public DateTime DeliveryDate { get; set; }
[JsonProperty(PropertyName = "discriminator")]
public string Discriminator { get; set; }
[JsonProperty(PropertyName = "assignedToUserId")]
public int AssignedToUserId { get; set; }
[JsonProperty(PropertyName = "projectId")]
public int ProjectId { get; set; }
[JsonProperty(PropertyName = "clientId")]
public int ClientId { get; set; }
[JsonProperty(PropertyName = "sortOrder")]
public int SortOrder { get; set; }
[JsonProperty(PropertyName = "isDeleted")]
public bool IsDeleted { get; set; }
[JsonProperty(PropertyName = "folder")]
public int Folder { get; set; }
[JsonProperty(PropertyName = "taskGroupId")]
public int TaskGroupId { get; set; }
[JsonProperty(PropertyName = "isNew")]
public bool IsNew { get; set; }
}
そして、私は私のタスククラスを印刷しようとすると、それは私に、このエラーを与える:。 「変換エラー値{ヌル} 『可能System.Int32』と入力するパス「clientVisibility
マイJSONクラス
'、1行目、157位。
JSONを表すクラスがありますか? – maccettura
はい。 –
Marq
このように 'task = JsonConvert.DeserializeObject(test);という行のコメントを外してください。文字列を既知の型に逆シリアル化する方法はありますか? –
maccettura