如何將json的字符串數據轉換成對象

1.頁面上需要傳遞的json字符串:

var jsonStr = '[{"RoomNum":"2","Person":[{"Id":"1_0","RoomNo":1,"Name":"SANZHANG"},{"Id":"1_1","RoomNo":1,"Name":"SILI"},{"Id":"2_0","RoomNo":2,"Name":"WUWANG"},{"Id":"2_1","RoomNo":2,"Name":"LIUCHE"}]}]';

 格式:

[
    {
        "RoomNum": "2",
        "Person": [
            {
                "Id": "1_0",
                "RoomNo": 1,
                "Name": "SANZHANG"
            },
            {
                "Id": "1_1",
                "RoomNo": 1,
                "Name": "SILI"
            },
            {
                "Id": "2_0",
                "RoomNo": 2,
                "Name": "WUWANG"
            },
            {
                "Id": "2_1",
                "RoomNo": 2,
                "Name": "LIUCHE"
            }
        ]
    }
]

2.在控制器上實現將json字符串轉對象:

   1).根據json字符串的特點進行定義對象屬性(這裏定義兩個類:RoomPerson.cs和Person.cs)

public class RoomPerson
{
    /// <summary>
    /// 房間總數
    /// </summary>
    public int RoomNum { get; set; }
    /// <summary>
    /// 客人列表數據
    /// </summary>
    public IList<Person> PersonList { get; set; }
}


public class Person
{
    /// <summary>
    /// 客人Id(格式:n_m)
    /// </summary>
    public string Id { get; set; }
    /// <summary>
    /// 客人房間號
    /// </summary>
    public int RoomNo { get; set; }
    /// <summary>
    /// 客人姓名
    /// </summary>
    public string Name { get; set; }
}

  2).進行轉換

List<RoomPerson> list = Newtonsoft.Json.JsonConvert.DeserializeObject<List<RoomPerson>>(jsonStr);

如果json的字符串數據不是前面那種情況的話,該如何去定義對象類呢?下面繼續給出另一種例子

1.json字符串數據:

var jsonStr = '[{"RowId":1,"Template":"HotelTemplateOne","TemplateId":"1","CheckInDte":"2019-05-06","CheckOutDte":"2019-05-10"},{"RowId":2,"Template":"HotelTemplateTwo","TemplateId":"1","CheckInDte":"2019-05-13","CheckOutDte":"2019-05-17"}]';

格式:

[
    {
        "RowId": 1,
        "Template": "HotelTemplateOne",
        "TemplateId": "1",
        "CheckInDte": "2019-05-06",
        "CheckOutDte": "2019-05-10"
    },
    {
        "RowId": 2,
        "Template": "HotelTemplateTwo",
        "TemplateId": "1",
        "CheckInDte": "2019-05-13",
        "CheckOutDte": "2019-05-17"
    }
]

 

2.定義RowData.cs類

    /// <summary>
    /// 行的數據屬性
    /// </summary>
    public class RowData
    {
        /// <summary>
        /// 行的序號
        /// </summary>
        public int RowId { get; set; }
        /// <summary>
        /// 模板
        /// </summary>
        public string Template { get; set; }
        /// <summary>
        /// 信息模板Id
        /// </summary>
        public int TemplateId { get; set; }
        /// <summary>
        /// 入住日期
        /// </summary>
        public string CheckInDte { get; set; }
        /// <summary>
        /// 離開日期
        /// </summary>
        public string CheckOutDte { get; set; }
    }

3.轉換

IList<RowData> list = Newtonsoft.Json.JsonConvert.DeserializeObject<IList<RowData>>(jsonStr);

總結:json字符串轉換成對象時,先看json字符的格式,再定義對象類,最後轉換

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章