# 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

   
   
```


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://dataset-generation-doc.gitbook.io/dataset-generation-doc/yaml/markdown.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
