arrays - 如何反序列化 Json 数组以列出(或)数组
问题描述
我从 Ajax 调用中获取数据,它给出的 json 输出在下面提到在我的代码隐藏作业表参数中有json Array 对象如何在反序列化中传递该参数并从中获取值
这是我的 Json 输出:
string Jobsheet =[{"var_name_data":"Demo1Demo2Demo3Demo4Demo5Demo6Demo7Demo8Demo9Demo10 1,2,3,4,5,6,7,8,9,10"}]
我的课:
public class RootObject
{
public List<User> var_name_data { get; set; }
}
public class User
{
public string first_name { get; set; }
public int customer_id { get; set; }
}
在我的代码隐藏中:
[WebMethod]
[ScriptMethod(ResponseFormat = ResponseFormat.Json)]
public static object Details4(string selectedJobSheet)
{
try
{
var des = (RootObject)Newtonsoft.Json.JsonConvert.DeserializeObject(selectedJobSheet, typeof(RootObject));
return des.var_name_data.Count.ToString();
}
catch (Exception)
{
throw;
}
}
它抛出一个异常:
EBCheckList.dll 中出现“Newtonsoft.Json.JsonSerializationException”类型的异常,但未在用户代码中处理附加信息:无法将当前 JSON 数组(例如 [1,2,3])反序列化为“EBCheckDAL.RootObject”类型,因为该类型需要一个 JSON 对象(例如 {"name":"value"})才能正确反序列化。要修复此错误,请将 JSON 更改为 JSON 对象(例如 {"name":"value"})或将反序列化类型更改为数组或实现集合接口的类型(例如 ICollection、IList),例如可以从 JSON 数组反序列化。JsonArrayAttribute 也可以添加到类型中以强制它从 JSON 数组反序列化。路径'',第 1 行,位置 1。发生
请帮我将上述 json 数据转换为列表(或)元素数组
解决方案
您可以反序列Jobsheet
化对象列表而不是RootObject
,如以下代码:
1 - 创建与 json 对象匹配的对象:
public class User
{
public string Var_name_data { get; set; }
}
2 - 反序列化Jobsheet
:
string Jobsheet = @"[{""var_name_data"":""Demo1Demo2Demo3Demo4Demo5Demo6Demo7Demo8Demo9Demo10 1,2,3,4,5,6,7,8,9,10""}]";
List<User> users = JsonConvert.DeserializeObject<List<User>>(Jobsheet);
演示:
foreach(User user in users)
{
Console.WriteLine(user.Var_name_data);
}
// or
Console.WriteLine(users.count);
结果:
Demo1Demo2Demo3Demo4Demo5Demo6Demo7Demo8Demo9Demo10 1,2,3,4,5,6,7,8,9,10
//or
1
我希望这会对你有所帮助。
推荐阅读
- rust - 传递对此方法的引用并期望关闭的唯一选择是不安全的吗?
- python - 如何用更有效的代码替换“for”循环以进行股市分析示例
- kdb - 使用正则表达式获取子列表
- ajax - 如何使用数组调用控制器方法
- node.js - 可以使用 google-auth-library 进行一批请求吗?
- c# - c# win app forms检测图像上的人脸数量,如果超过1张人脸提示错误信息
- javascript - 用于在动态添加的行上禁用文本字段的复选框
- powershell - Power Apps PowerShell:找不到“UserCredential”和参数计数的重载:“2”
- maven - 控制每次执行时继承的 Maven 插件
- sql - 如何从不同格式的日期按月-年分组 (SQL)