【问题标题】:xamarin froms parse JSON from django rest frameworkxamarin 表单从 django rest 框架解析 JSON
【发布时间】:2020-10-02 19:16:52
【问题描述】:

我可以在 django 网站上成功注册我的 xamarin forms 应用程序,如果用户名或电子邮件已经存在,我会收到来自 django rest 框架的 http 响应,格式如下:

{
"username": [
    "account with this username already exists."
],
"email": [
    "account with this email already exists."
]

}

我想在没有用户名和电子邮件的显示警报中显示这些错误。只有错误文本(例如:具有此用户名的帐户已存在或具有此电子邮件的帐户已存在)我尝试以多种方式对其进行解析,但均无效。我怎样才能实现它?

我的应用中的代码:

HttpClient client = new HttpClient();
        var values = new Dictionary<string, string>
        {
            { "username", EntryUsername.Text },
            { "email", EntryEmail.Text },
            { "password", EntryPassword1.Text },
            { "password2", EntryPassword2.Text }
        };

        var content = new FormUrlEncodedContent(values);

        var response = await client.PostAsync("http://192.168.0.101:8000/api/account/register", content);

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

【问题讨论】:

    标签: django parsing xamarin


    【解决方案1】:

    使用Newtonsoft

    var data = "{\"username\": [\"account with this username already exists.\"],\"email\": [\"account with this email already exists.\"]}";
    
    var obj = JObject.Parse(data);
        
    Console.WriteLine(obj["username"][0]);
    Console.WriteLine(obj["email"][0]);
    

    【讨论】:

    • 如果只有用户名或电子邮件不正确,我收到一条回复消息,另一条消息为空。在这种情况下,我有这个例外: System.NullReferenceException:'对象引用未设置为对象的实例。我该如何避免呢?
    • 测试obj["username"] == null
    猜你喜欢
    • 2017-03-19
    • 2015-07-14
    • 2018-02-11
    • 2018-02-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-01-17
    • 2015-10-24
    相关资源
    最近更新 更多