簡體   English   中英

我無法反序列化json數組

[英]I can't deserialize json array

我輸入了json

{
    "StudentData": {
        "Students": [{
            "StudentId": 76769,
            "StudentName": "*****",
            "Contacts": [{
                "ContactName": "****",
                "ContactEmail": "****",
                "АvailableContactEmail": true,
                "ContactMobile": "****",
                "АvailableContactMobile": true
            }]
        }]
    }
}

和這段代碼

public class Contacts
{
    public string ContactName { get; set; }
    public string ContactEmail { get; set; }
    public bool АvailableContactEmail { get; set; }
    public string ContactMobile { get; set; }
    public bool АvailableContactMobile { get; set; }
}

public class Students
{
    public int StudentId { get; set; }
    public string StudentName { get; set; }
    public List<Contacts> Contacts { get; set; }
}

public class StudentData
{
    public List<Students> Students { get; set; }
}

public static async Task<HttpResponseMessage> Run(HttpRequestMessage req, TraceWriter log)
{
    log.Info("C# HTTP trigger function processed a request.");

       // Get request body
        dynamic data = await req.Content.ReadAsAsync<object>();
        var stuData = JsonConvert.DeserializeObject <StudentData>(data?.StudentData.ToString());

        RootObjectNew RootObjectNewObject = new RootObjectNew();
        List<StudentNew> students = new List<StudentNew>();

        foreach (var stu in stuData.Students)
        {
            var stuContacts = JsonConvert.DeserializeObject <List<Contacts>>(stu?.Contacts.ToString());
        }
}

但我無法聯系。 得到錯誤

解析值時遇到意外字符:S.路徑”,第0行,位置0。

請幫助對結構進行正確的分析。 我瀏覽了許多類似的主題,但它們並沒有幫助我

data?.StudentData.ToString()不會為您提供對象的JSON表示,而只是顯示其名稱。

嘗試跟隨

public class StudentDataContainer 
{
    public StudentData StudentData { get; set; }

}

var data = await req.Content.ReadAsAsync<StudentDataContainer>();

我會建議這些課程

    public class Contact
    {
        public string ContactName { get; set; }
        public string ContactEmail { get; set; }
        public bool АvailableContactEmail { get; set; }
        public string ContactMobile { get; set; }
        public bool АvailableContactMobile { get; set; }
    }

    public class Student
    {
        public int StudentId { get; set; }
        public string StudentName { get; set; }
        public List<Contact> Contacts { get; set; }
    }

    public class StudentData
    {
        public List<Student> Students { get; set; }
    }

    public class RootObject
    {
        public StudentData StudentData { get; set; }
    }

然后你可以簡單地做到這一點

     RootObject root = JsonConvert.DeserializeObject<RootObject>(json);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM