> For the complete documentation index, see [llms.txt](https://dataset-generation-doc.gitbook.io/dataset-generation-doc/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://dataset-generation-doc.gitbook.io/dataset-generation-doc/yaml/markdown.md).

# Points d'entrés du Json

### Mise en contexte

Par defaut avec le champs field (explication du fonctionnement plus bas dans la page) a comme format de sorti un json cela créer un tableau d'objet. Cela devient contraignant lorsque l'on souhaite un objet json ou que l'on souhaite ajouter des information en dehors des données générés.

```json

// Exemple d'object json nécessitant meta
{
    "param": True,
    "id fichier ":  "ID_DEAQSQDS",
    
    "az2der212":{
        "nom": "toto",
        "age": 12
    },
    "kfhgjht554":{
        "nom": "titi",
        "age": 13
    }
}
```

{% hint style="danger" %}
Le **yaml** à besoin par défaut d'un point d'entré pour préciser au logiciel ou insérer les données dans fields&#x20;
{% endhint %}

### Fields

Le mot clés fields est utilisé comme point d'entré du fichier et préciser oû insérer les données

Le champ fields est utilisé si l'on souhaite un tableau d'objet, il suffit de le mettre au premier niveau puis ajouter toutes les descriptions de champ du dataset au deuxième niveau (via un tab ou un espace voir dans l page [précédente](/dataset-generation-doc/yaml/markdown.md))&#x20;

Chaque fichier Yaml doit avoir le mot clés fields ou se placera la structure du dataset

```yaml
datasetName: messageAMF
numberOfRecords: 109
fields: # premier niveau
   - fieldName : age # deuxième niveau 
     type: integer

```

### Meta&#x20;

Le mot clés meta est utilise pour décrire l'ossature du json en dehors du point d'entrée. Il est utile pour préciser des informations avant le point d'entré ou si l'on veut des clés pour chaque objet json généré.

Avec ce paramètre il faut ajouter le mot clés entrypoint : True dans la définiton de la variable qui sera le point d'entrée. Dans l'exmple suivant on peut voir que meta se situe toujours avant fields&#x20;

{% hint style="warning" %}
SI vous sohaitez que votre dataset commence par { comme un json normal et non par \[  , vous devez utiliser meta et créer un objet comme ppint d'entr avec comme param.

```yaml
meta: 
   - fieldName : object
     type : object
     isEntryPoint: true
```

{% endhint %}

```json
// Exemple d'object json nécessitant meta
{
"param": True,
"id fichier ": "IDDEAQSQDS",
"az2der212":{
    "nom": "toto",
    "age": 12
},
"kfhgjht554":{
    "nom": "titi",
    "age": 13
}
```

}

```yaml
datasetName: messageAMF
numberOfRecords: 109

meta: 
   - fieldName : param
   type : boolean
   - fieldName : id fichier
   type : id
   rules:
      len: 11
      includeLetters: true
      includeNumbers: true
      
   - fieldName : id_objet
   type : id
   isEntryPoint: true #Ce mot clés permet de spécifier que ce champs est le point d'entré
   rules:
      len: 9
      includeLetters: true
      includeNumbers: true
      
fields: # premier niveau
  - fieldName : nom # deuxième niveau 
     fakerType: name
   - fieldName : age # deuxième niveau 
     type: integer

   
   
```
