Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/259.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 将Json字符串反序列化为多个对象类型_C#_Json_Serialization_Json.net - Fatal编程技术网

C# 将Json字符串反序列化为多个对象类型

C# 将Json字符串反序列化为多个对象类型,c#,json,serialization,json.net,C#,Json,Serialization,Json.net,我有一个从web服务获取的Json字符串;它有一个集合列表,每个集合代表一个对象,例如: [ // Root List [ // First Collection : Team Object { "id": 1, "team_name": "Equipe Saidi", "is_active": true, "last_localisation_date": "2015-05-06T13:33:15+02:0

我有一个从web服务获取的Json字符串;它有一个集合列表,每个集合代表一个对象,例如:

  [ // Root List
    [ // First Collection : Team Object
      {
        "id": 1,
        "team_name": "Equipe Saidi",
        "is_active": true,
        "last_localisation_date": "2015-05-06T13:33:15+02:00"
      },
      {
        "id": 3,
        "team_name": "Equipe Kamal",
        "is_active": true,
        "last_localisation_date": "2015-05-06T09:22:15+02:00"
      }
     ],
     [// Second Collection : user Object
      {
        "id": 1,
        "login": "khalil",
        "mobile_password": "####",
        "first_name": "Abdelali",
        "last_name": "KHALIL",
        "email": "KHALIL@gmail.com",
        "role": "DR",
        "is_active": true,
        "charge": false
      },
      {
        "id": 2,
        "login": "ilhami",
        "mobile_password": "####",
        "first_name": "Abdellah",
        "last_name": "ILHAMI",
        "email": "ILHAMI@gmail.com",
        "role": "DR",
        "is_active": true,
        "charge": false
      }
    ]
  ]
我的实际代码(当然不起作用):

公共异步任务组和移动用户()
{
字符串数据=”;
IList MobileUsersList=新列表();
IList TeamsList=新列表();
尝试
{
数据=等待GetResponse(路径+团队\用户\ URL);
TeamsList=JsonConvert.DeserializeObject(数据);
MobileUsersList=JsonConvert.DeserializeObject(数据);
//插入
等待设置完成的操作(团队列表);
}
捕获(例外e){
_错误。添加(e.Message);
}
}
我使用Json.net和C#。我找不到解决方案,我读到应该使用JsonReader并将其SupportMultipleContent属性设置为true,但我不知道如何实现该解决方案。

您是否尝试为该json生成契约类?另外,第一个和最后一个括号给出了一个无效的JSON,您需要创建4个类
You need to create 4 classes
1st class TeamObject : Variable(id,team_name,is_active,last_localisation_date)
2nd class UserObject : Variable (id, login,mobile_password,first_name, last_name ,                        email, role,is_active,charge)
3rd class RootList: Variable ( arraylist<TeamObject> obj, arraylist<UserObject > obj2)
4th class RootClass : Variable(arraylist<RootList> obj)
Gson gson=new Gson();
RootClass dtomodel = gson.fromJson(data , RootClass .class);


This parsing done using Gson Library
第一类TeamObject:变量(id、团队名称、是否处于活动状态、上次本地化日期) 第二类用户对象:变量(id、登录名、手机密码、名字、姓氏、电子邮件、角色、是否处于活动状态、费用) 第三类根列表:变量(arraylist obj、arraylist obj2) 第4类根类:变量(arraylist obj) Gson Gson=新的Gson(); RootClass-dtomodel=gson.fromJson(数据,RootClass.class); 此解析使用Gson库完成
正如@YeldarKurmangaliyev所说,您的json有两个不同的对象,我认为您可以这样做:

var j = JArray.Parse(data);
TeamsList = JsonConvert.DeserializeObject<List<Team>>(j[1].ToString());
MobileUsersList = JsonConvert.DeserializeObject<List<User>>(j[2].ToString());
var j=JArray.Parse(数据);
TeamsList=JsonConvert.DeserializeObject(j[1].ToString());
MobileUsersList=JsonConvert.DeserializeObject(j[2].ToString());

您的JSON有问题。它在逻辑上是无效和不正确的。您有一个由两个不同类型的对象组成的数组。您希望它如何协同工作?实际上,它们应该是两个对象。您是否能够编辑JSON结构或以其他格式接收它?可能,然后
JsonConvert.DeserializeObject(字符串json)@Yeldar Kurmangaliyev不,我无法编辑Json结构:(@HadiRj谢谢我会看一看。是的,删除括号后,它通过了JsonLint验证,但在JSON2Charp生成时失败了。既然我只有两个对象,为什么我要创建4个类呢?用户和团队!?。Gson是java库,而不是c。
var j = JArray.Parse(data);
TeamsList = JsonConvert.DeserializeObject<List<Team>>(j[1].ToString());
MobileUsersList = JsonConvert.DeserializeObject<List<User>>(j[2].ToString());