读取收到的 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收到两个错误,如下所示:

  1. 列表项

读取超时 = 'ms。读取超时"抛出类型异常 'System.InvalidOperationException'

  1. 列表项

写入超时 = 'ms.写入超时"抛出类型异常 'System.InvalidOperationException'

下面是我用来调用该方法的代码GetStaffMember

private async void Button_Click(object sender, RoutedEventArgs e)
{
    StaffMember myStaffMember = await BMIRSProxy.GetStaffMember();
}

您的帮助将不胜感激,因为我现在被困住了

读取收到的 json 数据时出错.我正在使用 C# 开发一个从 json 读取数据的 UWP

看起来您的 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;
}