如何反序列化Json数组以列出(或)数组

问题描述 投票:1回答:1

我正在从Ajax调用获取数据,其给出的json输出如下所述在我的代码隐藏的[[Jobsheet参数中具有json Array object如何在反序列化中传递该参数并从中获取值

这是我的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; } }

引发异常:

[Newtonsoft.Json.JsonSerializationException类型的异常在EBCheckList.dll中发生,但未在用户代码中处理附加信息:无法将当前JSON数组(例如[1,2,3])反序列化为类型'EBCheckDAL.RootObject',因为该类型需要JSON对象(例如{“ name”:“ value”})才能正确反序列化。要解决此错误,可以将JSON更改为JSON对象(例如{“ name”:“ value”}),也可以将反序列化类型更改为数组或实现集合接口的类型(例如ICollection,IList),例如List从JSON数组反序列化。还可以将JsonArrayAttribute添加到类型中,以强制其从JSON数组反序列化。路径”,第1行,位置1。出现

[请帮助我将上述json数据转换为列表(或)元素数组

arrays json c#-4.0 json.net asp.net-ajax
1个回答
0
投票
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);

Demo:

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 希望对您有帮助。

© www.soinside.com 2019 - 2024. All rights reserved.