Member 11589429 Ответов: 2

Десериализация JSON : несколько объектов внутри


I have sample code ,that work fine.

public class Employee  
{  
    public int ID { get; set; }  
    public string Name { get; set; }  
    public string Address { get; set; }  
}  


   private void JSONDeserilaize()  
{  
    string json = @"{  
        'ID': '1',  
        'Name': 'Manas',  
        'Address': 'India'  
    }";  

    Employee empObj = JsonConvert.DeserializeObject<Employee>(json);  

    Response.Write(empObj.Name);  
}  

But my json string is in this format.

string json = @"{'ID': '1','Name': 'Manas','Address': 'India',"data":{"EmpDeptId":"20172807"}}";

How to fetch EmpDeptId along with Id,Name and Address.


Что я уже пробовал:

public class Employee  
{  
    public int ID { get; set; }  
    public string Name { get; set; }  
    public string Address { get; set; }  
}  
 

   private void JSONDeserilaize()  
{  
    string json = @"{  
        'ID': '1',  
        'Name': 'Manas',  
        'Address': 'India'  
    }";  
 
    Employee empObj = JsonConvert.DeserializeObject<Employee>(json);  
 
    Response.Write(empObj.Name);  
} 

2 Ответов

Рейтинг:
1

F-ES Sitecore

public class EmployeeData
{
    public int EmpDeptId { get; set; }
}

public class Employee  
{  
    public int ID { get; set; }  
    public string Name { get; set; }  
    public string Address { get; set; }  
    public EmployeeData Data { get; set; }
}  


Непроверенное, но что-то вроде вышеприведенного, вы создаете свойство "данные", которое имеет тип, поддерживающий структуру данных.


Рейтинг:
0

Graeme_Grant

Простой способ-использовать сервис, который может конвертировать JSON в классы C#. Мой любимый: JSON Utils: генерация C#, VB.Net, SQL Table, Java и PHP из JSON[^]

С помощью:

{'ID': '1','Name': 'Manas','Address': 'India',"data":{"EmpDeptId":"20172807"}}

Выходы:
public class Data
   {

       [JsonProperty("EmpDeptId")]
       public string EmpDeptId { get; set; }
   }

   public class Employees
   {

       [JsonProperty("ID")]
       public string ID { get; set; }

       [JsonProperty("Name")]
       public string Name { get; set; }

       [JsonProperty("Address")]
       public string Address { get; set; }

       [JsonProperty("data")]
       public Data Data { get; set; }
   }


Richard Deeming

Если вы используете VS2013 или более позднюю версию (или VS2012 с установленным WebTools 2012.2), и у вас есть ссылка на JSON.NET - нет никакой необходимости в услуге. :)
"Вставить JSON как классы" в ASP.NET и веб-инструменты 2012.2 RC[^]

Graeme_Grant

Да, я очень хорошо осведомлен об этом, но не так гибок, как Сервис Плюс имеет проблемы, если там формат JSON не прост. Отсюда и моя рекомендация.