簡體   English   中英

如何將Json對象轉換為C#類對象

[英]How to Convert Json Object to C# Class Object

{
    "users": [
        {
            "name": "User1",
            "email": "support@korewireless.com",
            "phone": "+12049987456",
            "status": "Active",
            "title": "Mr"
        },
        {
            "name": "User2",
            "email": "info@korewireless.com",
            "phone": "+12040147456",
            "status": "Active",
            "title": "Mr"
        },
        {
            "name": "User3",
            "email": "help@korewireless.com",
            "phone": "+12040787456",
            "status": "Active",
            "title": "Ms"
        }
    ]
}

嘗試將此json對象轉換為列表,但僅具有空值

var a = JsonConvert.DeserializeObject<User>(jsonData);

我如何將其解析為類對象?

如果要反序列化特定的json字符串,則需要定義一個包含用戶列表的根對象。

例如:

public class ListRoot
{ 
    public List<User> users { get; set; }
}

public class User
{ 
    public string name { get; set; }
    public string phone { get; set; }
    public string email { get; set; }
    public string status { get; set; }
    public string title { get; set; }
}

現在你可以打電話

var data = JsonConvert.DeserializeObject<ListRoot>(jsonData);
foreach (User u in data.users)
{
    Console.WriteLine($"User:name={u.name}, phone={u.phone}, email={u.email}");
}

當然,如果您可以控制json數據的產生,則可以采用更簡單的方法來准備json數據,如下所示

[
    {
        "name": "User1",
        "email": "support@korewireless.com",
        "phone": "+12049987456",
        "status": "Active",
        "title": "Mr"
    },
    {
        "name": "User2",
        "email": "info@korewireless.com",
        "phone": "+12040147456",
        "status": "Active",
        "title": "Mr"
    },
    {
        "name": "User3",
        "email": "help@korewireless.com",
        "phone": "+12040787456",
        "status": "Active",
        "title": "Ms"
    }
]

使您能夠直接致電

List<User> users = JsonConvert.DeserializeObject<List<User>>(jsonData);

您應該轉換為對象列表,因為您的json是用戶對象的枚舉。 例如: var a = JsonConvert.DeserializeObject<List<User>>(jsonData);

這取決於您的User類。 請提供驗證碼。

您的json看起來更像List<User>的表示形式。 如果是這樣,則必須通過JsonConvert.DeserializeObject<List<User>>(json)進行反序列化。

暫無
暫無

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

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