读取收到的 json 数据时出错.我正在使用 C# 开发一个从 json 读取数据的 UWP
本文关键字:数据 读取 json 开发 一个 UWP 出错 | 更新日期: 2023-09-27 18:35:42
public class BMIRSProxy
{
static string json_url = string.Format("http://localhost:8081/bmirs_2015/php_scripts/get_staff_members.php");
public async static Task<StaffMember> GetStaffMember()
{
var http = new HttpClient();
var response = await http.GetAsync(json_url);
var result = await response.Content.ReadAsStringAsync();
var serializer = new DataContractJsonSerializer(typeof(StaffMember));
var ms = new MemoryStream(Encoding.UTF8.GetBytes(result));
var data = (StaffMember)serializer.ReadObject(ms);
return data;
}
}
[DataContract]
public class StaffMember
{
[DataMember]
public string first_name { get; set; }
[DataMember]
public string last_name { get; set; }
[DataMember]
public string title { get; set; }
[DataMember]
public string profile { get; set; }
[DataMember]
public string image_uri { get; set; }
}
以上是我创建的类。 但是当我可以在创建的按钮中GetStaffMember
该方法时,没有数据输出。 调试时,我从MemomryStream
实例ms
收到两个错误,如下所示:
- 列表项
读取超时 = 'ms。读取超时"抛出类型异常 'System.InvalidOperationException'
- 列表项
写入超时 = 'ms.写入超时"抛出类型异常 'System.InvalidOperationException'
下面是我用来调用该方法的代码GetStaffMember
private async void Button_Click(object sender, RoutedEventArgs e)
{
StaffMember myStaffMember = await BMIRSProxy.GetStaffMember();
}
您的帮助将不胜感激,因为我现在被困住了
看起来您的 JSON 字符串是一个包含 1 个元素的数组。因此,让我们反序列化为数组,并为数据绑定选择唯一的元素
public async static Task<StaffMember> GetStaffMemberAsync()
{
var http = new HttpClient();
var response = await http.GetAsync(json_url);
var result = await response.Content.ReadAsStringAsync();
var data = (JsonConvert.DeserializeObject<List<StaffMember>>(result))[0];
return data;
}