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字符的格式,再定義對象類,最後轉換