在xamarin中实现json

时间:2018-01-27 12:45:16

标签: xamarin xamarin.forms xamarin-studio

"无法将当前JSON对象(例如{\" name \":\" value \"})反序列化为类型' System.Collections .Generic.List`1 [Service.View.Login +成功]'因为类型需要一个JSON数组(例如[1,2,3])才能正确反序列化。\ n要修复此错误,要么将JSON更改为JSON数组(例如[1,2,3])或更改反序列化类型,它是一个普通的.NET类型(例如,不是像整数这样的基本类型,不是类似于数组或列表的集合类型),可以从JSON对象反序列化。 JsonObjectAttribute也可以添加到类型中以强制它从JSON对象反序列化。\ n '成功',第1行,第11位。"

        try
        {
            using (var cl = new HttpClient())
            {
                var formcontent = new FormUrlEncodedContent(new[]
                    {
                    new KeyValuePair<string,string>("email", email.Text),
                    new KeyValuePair<string, string>("password",passwors.Text)
                });


                var request = await cl.PostAsync("http://192.168.1.122/api/login/user", formcontent);

                request.EnsureSuccessStatusCode();

                var response = await request.Content.ReadAsStringAsync();

                var myData = JsonConvert.DeserializeObject<Success>(response);

            }
        }
        catch (Exception ex)
        {
            await DisplayAlert("Error", ex.Message, "Close");
        }

2 个答案:

答案 0 :(得分:0)

我认为问题是你的模型(你应该发布)。您似乎尝试在作为Array(或List ...)的对象内反序列化对象(不是数组)。

答案 1 :(得分:0)

检查您从网址获得的回复并更正您的模型。

下次当您必须处理JSON并且想要快速生成C#模型时,请使用https://app.quicktype.io等服务。