0
votes

Chargez deux fichiers JSON de tableaux de dictionnaires. Ajouter des dictionnaires manquants du fichier A au fichier b

J'ai besoin de synchroniser deux fichiers JSON pour ajouter de nouveaux contenus à partir de Fichier A (situé dans le groupe d'applications) à Fichier B après une mise à jour de l'application.

Les fichiers JSON sont des tableaux de dictionnaires. J'ai besoin d'itérer le formulaire de dictionnaires fichier A et basé sur la valeur "ID", si un dictionnaire n'est pas présent dans Fichier B J'ai besoin d'ajouter ces dictionnaires manquants et Enregistrer Fichier B Retour au système de fichiers.

J'ai une solution ci-dessous qui le fait et semble fonctionner. Mais c'est tellement laid! Certes, je l'ai mis ensemble dans environ 15 minutes à craindre tout cela, mais je suis sûr qu'il doit y avoir une meilleure façon de gérer cela. En outre, je ne veux pas plus bouleverler les eaux en convertissant ces dictionnaires en structures ou modèles pour la comparaison uniquement pour les convertir en dictionnaires -> JSON.

Tout conseiller ici serait génial! Je préfère le code propre et ceci est un gâchis. xxx


0 commentaires

3 Réponses :


0
votes

Je pense que vous pouvez mettre les différents essayer s dans le même faire bloquer. xxx

Alors, votre fonction peut ressembler xxx


2 commentaires

Très vrai. J'étais un peu verbeux. Quelles sont vos pensées sur la charge / comparer / économiser des aspects? Merci pour cette réponse rapide!


@ Mejim707 La sauvegarde et le chargement semblent ok aussi, peut-être l'extraire à une fonction distincte. Comparer n'est pas trop shabby non plus.



0
votes

La façon dont je voudrais le faire est de décoder les fichiers JSON avec struct, puis de l'encoder (sérialisation) sur les autres fichiers. Étant donné que le code pour le faire serait un 2 doublure, mais vous devez d'abord disposer de toutes les variables dans la structure. Probablement toujours pas optimal


0 commentaires

1
votes

J'ai regroupé de convertir les fichiers en Jsonarray pour simplifier le do ... Catch. Sinon, si vous n'avez pas besoin d'imprimer le message d'erreur, vous pouvez choisir d'essayer facultatif Essayer? pour supprimer le blocage de ... Catch Block. XXX < / p>


1 commentaires

J'aime vraiment cette solution! J'ai ajouté cela à mon projet et après quelques petits peaux, cela fonctionne bien. Propre et facile à lire. Merci!