# Problème pour parser un fichier JSON à l'aide de Logstash

**URL:** https://discuss.elastic.co/t/probleme-pour-parser-un-fichier-json-a-laide-de-logstash/39851
**Category:** Discussions en français
**Created:** [January 22, 2016, 8:17am UTC](https://discuss.elastic.co/t/probleme-pour-parser-un-fichier-json-a-laide-de-logstash/39851 "2016-01-22T08:17:42Z")
**Posts on this page:** 7
**Page:** 1

<div class="post-metadata">

### Author: ![Benjamin\_Carriou](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/benjamin_carriou/32/47347_2.png) [@Benjamin\_Carriou](https://discuss.elastic.co/u/Benjamin_Carriou)
#### Post date: [January 22, 2016, 8:17am UTC](https://discuss.elastic.co/t/probleme-pour-parser-un-fichier-json-a-laide-de-logstash/39851/1 "2016-01-22T08:17:42Z")

</div>

Bonjour à tous !

Étant novice sous ELK, merci d'être gentil avec moi 😉

Je souhaite parser un fichier JSON sous Logstash pour l'indéxer dans ElasticSearch.  
Ce fichier est sous la forme suivante:  
[https://itunes.apple.com/FR/rss/customerreviews/id=525006323/sortBy=mostRecent/json](https://itunes.apple.com/FR/rss/customerreviews/id=525006323/sortBy=mostRecent/json)

Voici mon input et filter:

```
#######################################
############ INPUT SECTION ############
#######################################

input {
  file {
    type => "MappyGPS"
    path => "/opt/scraping-IOS/Mappy.json"
    codec => "json"
    start_position => "beginning"
    codec => multiline {
           pattern => "^{"
           negate => "true"
           what => "previous"
    }
    sincedb_path => "/dev/null"
  }
}

#######################################
########### FILTER SECTION ############
#######################################

filter
{
    mutate
    {
        replace => ["message", "%{message}"]
        gsub => ['message','\n','']
    }
    if [message] =~ /^{.*}$/
    {
        json { source => message }
    }

}

```

mais j'ai le message suivant:

```
{
       "message" => "{\"attributes\":{\"rel\":\"previous\", \"href\":\"https://itunes.apple.com/fr/rss/customerreviews/page=1/id=525006323/sortby=mostrecent/xml?urlDesc=/customerreviews/id=525006323/sortBy=mostRecent/json\"}}, ",
          "tags" => [
        [0] "_jsonparsefailure"
    ],

```

Merci d'avance pour votre aide 😉

---

<div class="post-metadata">

### Author: ![dadoonet](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/dadoonet/32/137187_2.png) [@dadoonet](https://discuss.elastic.co/u/dadoonet)
#### Post date: [January 22, 2016, 8:36am UTC](https://discuss.elastic.co/t/probleme-pour-parser-un-fichier-json-a-laide-de-logstash/39851/2 "2016-01-22T08:36:16Z")

</div>

Je suis surpris que LS accepte deux codecs.  
A mon avis l'un doit écraser l'autre.

En fait, je pense qu'il faut seulement utiliser le codec `json`.  
Il y a le code `json_lines` aussi mais il est fait pour le cas où tu as un JSON sur une seule ligne, si je comprends bien.

---

<div class="post-metadata">

### Author: ![Benjamin\_Carriou](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/benjamin_carriou/32/47347_2.png) [@Benjamin\_Carriou](https://discuss.elastic.co/u/Benjamin_Carriou)
#### Post date: [January 22, 2016, 8:44am UTC](https://discuss.elastic.co/t/probleme-pour-parser-un-fichier-json-a-laide-de-logstash/39851/3 "2016-01-22T08:44:19Z")

</div>

Bonjour David et merci de ta réponse.  
En fait, j'ai d'autres fichiers JSON qui sont eux, sur une même ligne.  
Du coup, j'utilise ceci:

```
#######################################
############ INPUT SECTION ############
#######################################

input {
  file {
    type => "CandyCrushSodaSaga"
    path => "/opt/scraping-GPS/apps_info_json/CandyCrushSaga.json"
    codec => "json"
    start_position => "beginning"
    sincedb_path => "/dev/null"
  }
}

#######################################
########### FILTER SECTION ############
#######################################

filter
{
    mutate
    {
        replace => ["message", "%{message}"]
        gsub => ['message','\n','']
    }
    if [message] =~ /^{.*}$/
    {
        json { source => message }
    }

}

```

Je ne sais pas si le code est propre mais ça marche 😉

---

<div class="post-metadata">

### Author: ![dadoonet](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/dadoonet/32/137187_2.png) [@dadoonet](https://discuss.elastic.co/u/dadoonet)
#### Post date: [January 22, 2016, 9:16am UTC](https://discuss.elastic.co/t/probleme-pour-parser-un-fichier-json-a-laide-de-logstash/39851/4 "2016-01-22T09:16:41Z")

</div>

Donc du coup ? Ca marche pour ton premier cas ?

---

<div class="post-metadata">

### Author: ![Brendao](https://avatars.discourse-cdn.com/v4/letter/b/848f3c/32.png) [@Brendao](https://discuss.elastic.co/u/Brendao)
#### Post date: [February 17, 2017, 8:29am UTC](https://discuss.elastic.co/t/probleme-pour-parser-un-fichier-json-a-laide-de-logstash/39851/5 "2017-02-17T08:29:53Z")

</div>

Bonjour,

J'ai actuellement le même problème, or quand je met

codec =\> "json"

J'ai un message d'erreur qui s'affiche lorsque je lance logstash, et dès que je change "codec =\> "json"" le problème n'est plus là mais j'ai toujours le "\_jsonparsefailure"

Comment puis-je faire ?

---

<div class="post-metadata">

### Author: ![dadoonet](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/dadoonet/32/137187_2.png) [@dadoonet](https://discuss.elastic.co/u/dadoonet)
#### Post date: [February 17, 2017, 8:49am UTC](https://discuss.elastic.co/t/probleme-pour-parser-un-fichier-json-a-laide-de-logstash/39851/6 "2017-02-17T08:49:51Z")

</div>

Ouvre une nouvelle question et poste toutes les informations comme un exemple de fichier en entrée, la configuration...

"Ca marche pas" n'est pas vraiment suffisant pour t'aider.

---

<div class="post-metadata">

### Author: ![system](https://us1.discourse-cdn.com/elastic/original/3X/1/a/1ac57faf039f6b580b3f104ef42a2a89e41014de.png) [@system](https://discuss.elastic.co/u/system)
#### Post date: [July 6, 2017, 1:43pm UTC](https://discuss.elastic.co/t/probleme-pour-parser-un-fichier-json-a-laide-de-logstash/39851/7 "2017-07-06T13:43:53Z")

</div>


