[comment]: # ({c9f98b7f-c9f98b7f})
# 5 Preprocessament CSV cap a JSON

[comment]: # ({/c9f98b7f-c9f98b7f})

[comment]: # ({6cb1ec36-6cb1ec36})
#### Vista general

En aquesta passa de preprocessament, és possible convertir les dades del fitxer CSV al format JSON. Està recolzat en:

- elements (prototips d'elements)
- regles de descoberta de baix nivell

[comment]: # ({/6cb1ec36-6cb1ec36})

[comment]: # ({77b863ab-77b863ab})
#### Configuració

Per configurar una passa de preprocessament CSV a JSON:

- Aneu a la pestanya Preprocessament a [element](/manual/config/items/preprocessing) configuració/[regla de descoberta](/manual/discovery/low_level_discovery#preprocessing)
- Feu clic a *Afegir*
- Trieu l'opció *CSV a JSON*

![](../../../../../assets/en/manual/appendix/csv_to_json_params.png){width="600"}

El primer paràmetre us permet definir un delimitador personalitzat. Tingueu en compte que si la primera línia de l'entrada CSV comença amb "Sep=" i va seguida d'un únic caràcter UTF-8, aquest caràcter s'emprarà com a delimitador si no s'estableix el primer paràmetre. Si el primer paràmetre no és pas definit i no s'extreu un delimitador de la línia "Sep=", s'empra una coma com a separador.

El segon paràmetre opcional permet definir un símbol de cotització.

Si la casella *Amb filera de capçalera* és marcada, els valors de la filera de capçalera s'interpretaran com a noms de columna (veieu [processament de capçalera](#csv_header_processing) per obtindre més informació).

Si la casella *Personalitzat en cas d'errada* és marcada, l'element no serà compatible si manca una passa de preprocessament. A més, es poden establir opcions de gestió d'errors personalitzades: ignorar el valor, establir el valor especificat o establir el missatge d'error especificat.

[comment]: # ({/77b863ab-77b863ab})

[comment]: # ({b8624807-b8624807})
#### Processament de la capçalera

#### Procés de la capçalera

La línia de capçalera del fitxer CSV es pot processar de dues maneres diferents:

- Si la casella *Amb filera de capçalera* és marcada, els valors de la filera de capçalera s'interpreten com a noms de columna. En aquest cas, els noms de les columnes han d'ésser únics i la filera de dades no ha de contindre més columnes que la filera de capçalera;
- Si la casella *Amb filera de capçalera* no és pas marcada, la filera de capçalera s'interpreta com a dades. Els noms de les columnes es generen automàticament (1,2,3,4...)

Exemple de fitxer CSV:

     Nombre, nom de l'element, clau, quantitat
     1, element agent actiu, agent.hostname,33
     "2","element d'agent passiu","agent.version","44"
     3,"elements d'agent actiu i passiu", agent.ping,55

:::noteclassic
Les cometes en un camp entre cometes de l'entrada s'han d'escapar precedint-les amb una altra cometa.
:::

**Processament de filera de capçalera**

Sortida JSON quan s'espera una filera de capçalera:

``` {.json}
[
   {
      "Nr":"1",
      "Item name":"active agent item",
      "Key":"agent.hostname",
      "Qty":"33"
   },
   {
      "Nr":"2",
      "Item name":"passive agent item",
      "Key":"agent.version",
      "Qty":"44"
   },
   {
      "Nr":"3",
      "Item name":"active,passive agent items",
      "Key":"agent.ping",
      "Qty":"55"
   }
]
```

**No es processa cap filera de capçalera**

Sortida JSON quan no s'espera una filera de capçalera:

``` {.json}
[
   {
      "1":"Nr",
      "2":"Item name",
      "3":"Key"
      "4":"Qty"
   },
   {
      "1":"1",
      "2":"active agent item",
      "3":"agent.hostname"
      "4":"33"
   },
   {
      "1":"2",
      "2":"passive agent item",
      "3":"agent.version"
      "4":"44"
   },
   {
      "1":"3",
      "2":"active,passive agent items",
      "3":"agent.ping"
      "4":"55"
   }
]
```

[comment]: # ({/b8624807-b8624807})
