Comment analyser un fichier avec un tableau d'objets JSON en utilisant Node.js?

dngot_:

J'ai ce projet où je veux obtenir les données JSON à partir d'un fichier avec un tableau d'objets json avec des attributs répétitifs:

some-file: (chaque objet est sur 1 ligne, pour plus de simplicité je l'ai formaté)

{
   "A":"ALL",
   "B":"3349256522",
   "Location":{

      "Country":"USA"
   },
   "EffectiveDate":"2020-03-04T14:15:52.063Z",
   "Demographic":{
      "Q":"done",
      "G":"ok",
      "AppVersion":"1.3.4",
   },
   "ApplicationId":"92398723892937",
   "Id":"23232993939333",
   "CreationDate":"2020-03-04T14:15:52.063Z"
}

{
   "A":"NONE",
   "B":"8469256522",
   "Location":{
      "Country":"SPAIN"
   },
   "EffectiveDate":"2020-03-04T14:15:52.063Z",
   "Demographic":{
      "Q":"done",
      "G":"ok",
      "AppVersion":"1.3.5",
   },

   "ApplicationId":"92398723892937",
   "Id":"23232993939333",
   "CreationDate":"2020-03-09T14:15:52.063Z"
}

{
   "A":"ALL",
   "B":"8469256522",
   "Location":{

      "Country":"USA"
   },
   "EffectiveDate":"2020-03-04T14:15:52.063Z",
   "Demographic":{
      "Q":"done",
      "G":"ok",
      "AppVersion":"1.3.4",
   },

   "ApplicationId":"92398723892937",
   "Id":"23232993939333",
   "CreationDate":"2020-03-11T14:15:52.063Z"
}

Je voudrais obtenir des statistiques pour des éléments spécifiques, Country et AppVersion. Comment puis-je le traiter à l'aide de NodeJs pour produire cette sortie:

{
   "stats":{
      "Country":{
         "USA":"2",
         "SPAIN":"1"
      },
      "AppVersion":{
         "1.3.4":"2",
         "1.3.5":"1"
      }
   }
}

En outre, le fichier d'entrée «certains fichiers» n'est pas un fichier JSON valide, une recommandation sur la façon de le convertir pour être valide (dans le code)?

The original file is (1 line each object):
{   "A":"ALL",   "B":"3349256522",   "Location":{      "Country":"USA"   },   "EffectiveDate":"2020-03-04T14:15:52.063Z",   "Demographic":{      "Q":"done",      "G":"ok",      "AppVersion":"1.3.4"   },   "ApplicationId":"92398723892937",   "Id":"23232993939333",   "CreationDate":"2020-03-04T14:15:52.063Z"}
{   "A":"ALL",   "B":"3349256522",   "Location":{      "Country":"SPAIN"   },   "EffectiveDate":"2020-03-04T14:15:52.063Z",   "Demographic":{      "Q":"done",      "G":"ok",      "AppVersion":"1.3.5"   },   "ApplicationId":"92398723892937",   "Id":"23232993939333",   "CreationDate":"2020-03-04T14:15:52.063Z"}
{   "A":"ALL",   "B":"3349256522",   "Location":{      "Country":"ITALY"   },   "EffectiveDate":"2020-03-04T14:15:52.063Z",   "Demographic":{      "Q":"done",      "G":"ok",      "AppVersion":"1.3.4"   },   "ApplicationId":"92398723892937",   "Id":"23232993939333",   "CreationDate":"2020-03-04T14:15:52.063Z"}
mickl:

Vous pouvez utiliser array.reduce pour accumuler les valeurs de comptage:

let input = [{
   "A":"ALL",
   "B":"3349256522",
   "Location":{
      "Country":"USA"
   },
   "EffectiveDate":"2020-03-04T14:15:52.063Z",
   "Demographic":{
      "Q":"done",
      "G":"ok",
      "AppVersion":"1.3.4",
   },
   "ApplicationId":"92398723892937",
   "Id":"23232993939333",
   "CreationDate":"2020-03-04T14:15:52.063Z"
},
{
   "A":"NONE",
   "B":"8469256522",
   "Location":{
      "Country":"SPAIN"
   },
   "EffectiveDate":"2020-03-04T14:15:52.063Z",
   "Demographic":{
      "Q":"done",
      "G":"ok",
      "AppVersion":"1.3.5",
   },

   "ApplicationId":"92398723892937",
   "Id":"23232993939333",
   "CreationDate":"2020-03-09T14:15:52.063Z"
},
{
   "A":"ALL",
   "B":"8469256522",
   "Location":{

      "Country":"USA"
   },
   "EffectiveDate":"2020-03-04T14:15:52.063Z",
   "Demographic":{
      "Q":"done",
      "G":"ok",
      "AppVersion":"1.3.4",
   },

   "ApplicationId":"92398723892937",
   "Id":"23232993939333",
   "CreationDate":"2020-03-11T14:15:52.063Z"
}];

let result = input.reduce((acc,current) => {
    let c = current.Location.Country;
    let v = current.Demographic.AppVersion;
    if(acc.Country[c]){
        acc.Country[c]++;
    } else {
        acc.Country[c] = 1;
    }
    
    if(acc.AppVersion[v]){
        acc.AppVersion[v]++;
    } else {
        acc.AppVersion[v] = 1;
    }
    return acc;
}, {Country: {}, AppVersion: {}});

console.log({ stats: result });

Cet article est collecté sur Internet, veuillez indiquer la source lors de la réimpression.

En cas d'infraction, veuillez [email protected] Supprimer.

modifier le
0

laisse moi dire quelques mots

0commentaires
connexionAprès avoir participé à la revue

Articles connexes

Analyser un tableau JSON avec un tableau d'objets à l'intérieur avec Retrofit

Analyser un tableau JSON d'objets JSON?

Comment analyser un tableau d'objets JSON avec Jackson en DTO dans SpringBoot

Comment analyser un tableau json avec plusieurs objets par gson?

Comment puis-je analyser JSON pour le convertir en un tableau d'objets dans Swift?

Comment analyser un fichier avec plusieurs JSON en PHP (Laravel)?

TypeScript - comment analyser un tableau JSON en un tableau d'objets personnalisés

Comment analyser un tableau d'objets json dans jquery

Analyser un fichier avec des objets JSON en Python

Comment renvoyer un tableau d'objets en utilisant Express, Node JS et Angular via une requête HTTP Get

Analyser un fichier avec plusieurs objets JSON en Python

Comment analyser un fichier JSON avec plusieurs objets

Comment filtrer un tableau d'objets en utilisant la case à cocher avec angulaire?

Comment convertir un objet de tableau avec un complexe d'objets imbriqués en fichier CSV

Analyser un tableau d'objets JSON en un tableau d'objets TypeScript

Comment analyser un objet Javasript en un tableau d'objets

Comment analyser le tableau Json à partir d'un objet Json en utilisant angular

Comment obtenir la somme des nombres à partir d'un tableau d'objets, en utilisant pur JS?

Comment envoyer un tableau d'objets avec d'autres formdatas en utilisant ajax?

comment puis-je analyser un fichier json en un tableau d'objets dans le nœud js

node.js pdf2json comment analyser un PDF à partir d'un tableau ?

comment analyser un tableau d'objets avec Circe

php-comment analyser un seul tableau d'objets json

Comment analyser un tableau d'objets dans Node.js ?

Comment analyser un tableau d'objets json en typescript (objet) après une méthode get

Analyser un fichier json en utilisant python

Comment lire un seul objet à partir d'un fichier json contenant plusieurs objets en utilisant python ?

Comment transformer les données d'un fichier txt en un tableau d'objets dans Node

Comment analyser un tableau d'objets JSON ?

TOP liste

  1. 1

    comment afficher un bouton au-dessus d'un autre élément ?

  2. 2

    impossible d'obtenir l'image d'arrière-plan en plein écran dans reactjs

  3. 3

    Je continue à obtenir l'objet 'WSGIRequest' n'a pas d'attribut 'Get' sur django

  4. 4

    comment supprimer "compte de connexion google" à des fins de développement - actions sur google

  5. 5

    Conversion double en BigDecimal en Java

  6. 6

    Impossible d'accéder à la vue personnalisée pendant le test de l'interface utilisateur dans XCode

  7. 7

    Algorithme: diviser de manière optimale une chaîne en 3 sous-chaînes

  8. 8

    Passer la taille d'un tableau 2D à une fonction ?

  9. 9

    Comment obtenir l'intégration contextuelle d'une phrase dans une phrase à l'aide de BERT ?

  10. 10

    Comment changer le navigateur par défaut en Microsoft Edge pour Jupyter Notebook sous Windows 10 ?

  11. 11

    CSS: before ne fonctionne pas sur certains éléments,: after fonctionne très bien

  12. 12

    Comment créer un bot à compte à rebours dans Discord en utilisant Python

  13. 13

    Comment ajouter une entrée à une table de base de données pour une combinaison de deux tables

  14. 14

    Exporter la table de l'arborescence vers CSV avec mise en forme

  15. 15

    Comment activer le message Pylint "too-many-locals" dans VS Code?

  16. 16

    Créer un système Buzzer à l'aide de python

  17. 17

    Spring @RequestParam DateTime format comme ISO 8601 Date Heure facultative

  18. 18

    Empêcher l'allocation de mémoire dans la génération de combinaison récursive

  19. 19

    Déplacement des moindres carrés d'ajustement pour les déplacements de points ayant des problèmes

  20. 20

    Comment choisir le nombre de fragments et de répliques Elasticsearch

  21. 21

    Microsoft.WebApplication.targets

chaudétiquette

Archive