在发布此问题之前,我尝试了其他相关帖子,但没有解决,因此在此发布。将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