JSONオブジェクトのデシリアライズに問題があります。これは私が持っているJSONです:Jsonをオブジェクトに逆シリアル化する方法
{
"resource": [{
"ClienteNome": "DOUGLAS DA SILVA BENEDITO",
"ClienteStatus": 0
}, {
"ClienteNome": "MARCO AURELIO DE SÁ GONÇALVES",
"ClienteStatus": 1
}, {
"ClienteNome": "MATHEUS CELESTINO CANDIDO",
"ClienteStatus": 2
}]
}
私はこのようにそれをデシリアライズしようとしている
public static async Task<List<Model.ClientesOnline>> GetAsync()
{
using (var client = new HttpClient())
{
client.DefaultRequestHeaders.Add("X-DreamFactory-Api-Key", "36fda24fe5588fa4285ac6c6c2fdfbdb6b64699774c9bf777f706d05a88");
string json = await client.GetStringAsync("http://api-u16.cloudapp.net/api/v2/nova207/_table/vw_clientes_online");
var clientesonline = JsonConvert.DeserializeObject<List<Model.ClientesOnline>>(json);
return clientesonline;
}
}
モデル
namespace NovaCloud.Model
{
class ClientesOnline : INotifyPropertyChanged
{
[JsonProperty("Resorces")]
private string clientenome;
public string ClienteNome { get { return clientenome; }
set
{
clientenome = value;
this.PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(nameof(ClienteNome)));
}
}
private string clientestatus;
public string ClienteStatus { get { return clientestatus; }
set
{
clientestatus = value;
this.PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(nameof(ClienteStatus)));
}
}
public event PropertyChangedEventHandler PropertyChanged;
}
}
エラーメッセージ
電流をデシリアライズすることはできませんJSON配列([1,2,3]など)をタイプに変換する10 'System.Collections.Generic.Dictionary`2 [System.String、Linker.Class.alternatives]' 型にはJSONオブジェクトが必要です(例: {"name": "value"})を に正しくデシリアライズします。このエラーを修正するには、JSONオブジェクトを JSONオブジェクト(例:{"name": "value"})に変更するか、またはデシリアライズされたタイプを に変更して、コレクションインターフェイス(例: ICollection、IList)を実装するタイプまたは配列に変更します。 JSON 配列から逆シリアル化できるリスト。 JsonArrayAttributeを型に追加して、 に強制的にJSON配列から逆シリアル化することもできます。
私は
モデルクラスを変更する必要があります。モデルが正しいかどうかわからない場合は、json2csharpで確認してください。 (http://json2csharp.com/) –