我认为这是因为json给了我一个数组,但是我不知道它是如何解决的,这就是我所做的。 (我是新来的)
在具有Web服务的Visual Studio 2019(xamarin.form)中运行,但为安全起见,该URL被隐藏了,因此请不要在意。
--- my-json ---
{
"cuentas":[
{
"cuenta":"0500",
"usuario":41
},
{
"cuenta":"0508",
"usuario":6
},
{
"cuenta":"0522",
"usuario":41
},
{
"cuenta":"0532",
"usuario":41
},
null
]
}
--- WSClient.cs ---
class WSClient
{
public async Task<T> Post<T>(string url, StringContent c)
{
var client = new HttpClient();
var response = await client.PostAsync(url, c);
var json = await response.Content.ReadAsStringAsync();
return JsonConvert.DeserializeObject<T>(json);
}
}
---- Cuenta.cs ---
public class Cuenta
{
public string cuenta { get; set; }
public int usuario { get; set; }
}
------ MainPage.xaml.cs -----
private async void BtnCall_Clicked(object sender, EventArgs e)
{
WSClient client = new WSClient();
string dato = "";
StringContent content = new StringContent(dato, Encoding.UTF8, "application/json");
var result = await client.Post<Cuenta>("http://www.***", content);
if (result != null) {
lblCuenta.Text = result.cuenta;
lblUsuario.Text = result.cuenta;
}
}
它什么也没给我显示,也没有给我任何错误……任何建议?
(如果我在“ WSClient”中使用WriteLine,则可以在控制台中看到json)
答案 0 :(得分:0)
您的类应如下所示(使用json2csharp.com)
public class Cuenta
{
public string cuenta { get; set; }
public int usuario { get; set; }
}
public class RootObject
{
public List<Cuenta> cuentas { get; set; }
}
var result = await client.Post<RootObject>("http://www.***", content);