Je travaille sur la conversion spécifique des classes Json en C# en utilisant le projet JsonClassGenerator.Lutter avec un JObject [] Filtrage et correspondance
Ceci est pour certains middleware Je construis pour accrocher à un projet API Trackvia mon entreprise a construit beaucoup dans.
Je construis la couche de données maintenant dans mon application .Net
Essentiellement, j'ai une structure Json que j'ai besoin d'analyser pour déterminer si je devrais sérialiser l'une des propriétés dans "données" en fonction de sa valeur "canUpdate" dans "structure".
LET début de la structure JSON:
{
"structure": [
{
"name": "Updated",
"type": "datetime",
"required": false,
"unique": false,
"canRead": true,
"canUpdate": false,
"canCreate": false
},
{
"name": "Amount",
"type": "currency",
"required": false,
"unique": false,
"canRead": true,
"canUpdate": false,
"canCreate": false
},
{
"name": "Description",
"type": "paragraph",
"required": false,
"unique": false,
"canRead": true,
"canUpdate": false,
"canCreate": false
},
{
"name": "Created",
"type": "datetime",
"required": false,
"unique": false,
"canRead": true,
"canUpdate": false,
"canCreate": false
},
{
"name": "Quantity",
"type": "number",
"required": false,
"unique": false,
"canRead": true,
"canUpdate": true,
"canCreate": true
},
{
"name": "Created By User",
"type": "user",
"required": false,
"unique": false,
"canRead": true,
"canUpdate": false,
"canCreate": false
},
{
"name": "ID",
"type": "number",
"required": false,
"unique": true,
"canRead": true,
"canUpdate": false,
"canCreate": false
},
{
"name": "Last User",
"type": "user",
"required": false,
"unique": false,
"canRead": true,
"canUpdate": false,
"canCreate": false
},
{
"name": "Unit_Tracker",
"type": "relationship",
"required": false,
"unique": false,
"canRead": true,
"canUpdate": true,
"canCreate": true
},
{
"name": "Project_Materials",
"type": "relationship",
"required": false,
"unique": false,
"canRead": true,
"canUpdate": true,
"canCreate": true
},
{
"name": "Record ID",
"type": "identifier",
"required": false,
"unique": false,
"canRead": true,
"canUpdate": false,
"canCreate": false
}
],
"data": [
{
"Updated": "2017-04-20T10:12:00.000-06:00",
"Project_Materials(id)": 404,
"Unit_Tracker(id)": 209,
"Amount": "78.18",
"Description": "1/2 in",
"Quantity": "1",
"Created By User": "By",
"Unit_Tracker": "R04-5050",
"Project_Materials": "1001755734",
"id": 772,
"Created": "2017-04-20T10:12:00.000-06:00",
"Last User": "By",
"Last User(id)": 58443,
"Created By User(id)": 58443,
"Record ID": "1/2 in"
}
],
"totalCount": 763
}
Voici ce que je dois répondre. Je dois faire correspondre une clé dans "données" ie "Mis à jour" avec une valeur clé dans "structure" ie structure -> "nom": "Mise à jour" puis déterminer la valeur de "canRead", "canUpdate", "canCreate" pour mettre un drapeau de quelque sorte.
Le drapeau sera alors dire au CodeWriter d'ajouter une ligne « [JsonIgnoreSerialization] » et produire dans mon texte une propriété au format émis comme suit:
[JsonIgnoreSerialization]
[JsonProperty("Updated")]
public string Updated { get; set; }
Je n'ai même travaillé avec JObjects donc mon le code est nul pour le moment parce que je ne sais pas exactement par où commencer.
La raison pour laquelle c'est un gros problème est que je dois convertir des centaines de tables dans Trackvia en classes C# dans mon application basée sur l'exportation Json de leur API - cela me prendra des semaines et voudrait avoir une conversion personnalisée outil qui construit mes classes C# pour moi - donc ce serait génial d'avoir.
Ne cherchez pas de documents, je suis prêt à travailler pour mon propre succès besoin d'une certaine direction.
Avez-vous trouvé la réponse utile? Ou cela n'a pas résolu votre problème? – Sameer