2017-07-10 2 views
-2

J'ai un objet comme ci-dessous:Comment deseriliaze dans différents objets où contiennent propriété d'objet complexe avec un autre nom de la propriété

Organization: 
     { Id : 1, Name : name, OrgType : { typeId : 1, name: tname }, employees : [{id:1, name:sm },{id:2, name:sm1 },{id:3, name:sm3 }] 

donc, ici l'objet complexe containing- Organisation, OrgType et la liste des employés.

Problème, est-ce que je reçois cette collection à partir d'une réponse de service et mon application a une structure d'objet différente.

Comment puis-je désérialiser ci-dessus objet au-dessous de la structure:

Organization : 
     Id changed to OrgId 
     Name as Name, 
     OrgType object changed to Type object 
     Employees List object changed to EmpList object 

In Type object - typeId changed to OtId, name changed to Name. 

Employee object - id changed Id, name changed to EmployeeName 

ici, comment désérialiser en objet ci-dessus où différents biens et contenant également objet complexe.

+0

Désérialisez un modèle représentant votre json puis créez les classes appropriées comme vous le souhaitez. –

+0

Je ne veux pas créer de classe car il est déjà là, donc je ne veux pas faire deux classes pour la même entité. Toute solution pour la transformation ou le type de convertisseur recherchant. – user3711357

+0

OK que ce qui manque dans votre question: 1) Original * correct * json. 2) Votre modèle que vous avez déjà. 3) Ce que vous avez essayé jusqu'à présent –

Répondre

-1

Option 1.

Vous pouvez désérialiser dans un type dynamic et la carte alors que votre modèle de destination.

par exemple. dynamic tempObject = JObject.Parse(serializedString);

ou l'option 2.

Si vous connaissez le modèle source reste constante, vous pouvez créer un modèle qui a la même structure que le modèle entrant et désérialiser à cela.

Puis - pour les deux options

Vous pouvez utiliser AutoMapper pour mapper votre objet source à l'objet de destination. Il y a beaucoup de ressources avec des détails sur la façon d'accomplir ceci - voici un exemple utilisant un objet source dynamique: https://github.com/AutoMapper/AutoMapper/wiki/Dynamic-and-ExpandoObject-Mapping