在發佈此問題之前,我嘗試了其他相關帖子,但沒有解決,因此在此發佈。將JSON對象轉換爲C#列表
我有一個Json存儲在隱藏字段中,我正在訪問我的標記頁面文件後面的代碼。我需要將此Json轉換爲List並將其綁定到網格,但在反序列化時拋出錯誤,說"Unexpected error encountered while parsing values ''"
。
用於從網格獲取數據並生成Json對象的腳本。
public class Details
{
public string Name { get; set; }
public string Gender { get; set; }
public string Country { get; set; }
public int UniqueKey { get; set; }
public int Age { get; set; }
}
用於解串行化JSON和檢索數據作爲模型類的列表的代碼:
function BeforeSorting() {
var list = UpdateDataSource();
$("#SortingField").val(list);
}
function UpdateDataSource() {
var list="";
var grid = $find("DetailsGrid");
var rows = grid.get_rows();
for(var i =0 ; i<rows.get_length();i++){
var name = rows.get_row(i).get_cellByColumnKey("Name").get_value();
var country = rows.get_row(i).get_cellByColumnKey("Country").get_value();
var gender = rows.get_row(i).get_cellByColumnKey("Gender").get_value();
var age = rows.get_row(i).get_cellByColumnKey("Age").get_value();
var uniqueKey = rows.get_row(i).get_cellByColumnKey("UniqueKey").get_value();
list = list + '{"Name":"' + name + '", "Country":"' + country + '", "Gender":"' + gender + '", "Age":' + age + ', "UniqueKey":' + uniqueKey + '},';
}
list = "["+list.substr(0, list.length - 1)+"]";
return JSON.parse(list);
}
模型類。
protected void DetailsGrid_ColumnSorted(object sender, Infragistics.Web.UI.GridControls.SortingEventArgs e)
{
var dataSource = SortingField.Value;
List<Details> result = (List<Details>)Newtonsoft.Json.JsonConvert.DeserializeObject(dataSource, typeof(List<Details>));
DetailsGrid.DataSource = result;
DetailsGrid.DataBind();
}
作爲獲得的JSON字符串:
"[{"Name":"Jerry", "Country":"U.S.A.", "Gender":"Male", "Age":20, "UniqueKey":1},{"Name":"Tom", "Country":"U.K", "Gender":"Male", "Age":10, "UniqueKey":2},{"Name":"George", "Country":"Gremany", "Gender":"Male", "Age":38, "UniqueKey":3},{"Name":"Kate", "Country":"France", "Gender":"Female", "Age":40, "UniqueKey":4},{"Name":"Jenny", "Country":"Poland", "Gender":"Female", "Age":25, "UniqueKey":5}]"
看來你的值設置爲JavaScript對象,而不是一個JSON字符串 - 其實,你要創建一個JSON字符串硬盤的方式,然後解析它...將JSON傳遞到服務器,你會JSON.stringify一個JavaScript對象導致一個JSON字符串 –
'獲得的JSON字符串最有可能'[object Object]' –
我試過使用JSON .stringify但不能將List解析爲Json,並在腳本中引發錯誤...您可以通過其他簡單的方法來實現上述功能嗎? – zainul