Partage
  • Partager sur Facebook
  • Partager sur Twitter

decodage json avec jackson

    14 novembre 2019 à 15:06:51

    salut,j'utilise la librairie jackson pour transformer une chaine de caractère 'String" en une collection de type Map. je suis confronté au problème ci-dessous au cours  de la transformation.

    com.fasterxml.jackson.core.JsonParseException: Unexpected character ('d' (code 100)): was expecting double-quote to start field name
     at [Source: (String)"{data_list=true, result_type=logic, text_1=true, text_0=false, lv=0.0, units=, acc_ignore=false, type=acc, hv=0.0, popup=true, dictionary={}, param=io1, name=state acc, imei=xxxxxxxxxxxx, formula=, calibration={}}"; line: 1, column: 3]
    	at com.fasterxml.jackson.core.JsonParser._constructError(JsonParser.java:1840)
    	at com.fasterxml.jackson.core.base.ParserMinimalBase._reportError(ParserMinimalBase.java:712)
    	at com.fasterxml.jackson.core.base.ParserMinimalBase._reportUnexpectedChar(ParserMinimalBase.java:637)
    	at com.fasterxml.jackson.core.json.ReaderBasedJsonParser._handleOddName(ReaderBasedJsonParser.java:1781)
    	at com.fasterxml.jackson.core.json.ReaderBasedJsonParser.nextFieldName(ReaderBasedJsonParser.java:932)
    	at com.fasterxml.jackson.databind.deser.std.MapDeserializer._readAndBindStringKeyMap(MapDeserializer.java:500)
    	at com.fasterxml.jackson.databind.deser.std.MapDeserializer.deserialize(MapDeserializer.java:364)
    	at com.fasterxml.jackson.databind.deser.std.MapDeserializer.deserialize(MapDeserializer.java:29)
    	at com.fasterxml.jackson.databind.ObjectMapper._readMapAndClose(ObjectMapper.java:4202)
    	at com.fasterxml.jackson.databind.ObjectMapper.readValue(ObjectMapper.java:3205)
    	at com.fasterxml.jackson.databind.ObjectMapper.readValue(ObjectMapper.java:3188)

    voici la configuration de mon objet qui sert a decoder le json


    public Tools() {
            this.objectMapper = new ObjectMapper();
            this.objectMapper.configure(Feature.ALLOW_SINGLE_QUOTES, true);
            this.objectMapper.configure(DeserializationFeature.FAIL_ON_NULL_FOR_PRIMITIVES, false);
            this.objectMapper.configure(DeserializationFeature.FAIL_ON_NUMBERS_FOR_ENUMS, false);
            this.objectMapper.enable(SerializationFeature.INDENT_OUTPUT);
        }

    comment resoudre mon probleme ?

    -
    Edité par beza88 14 novembre 2019 à 15:10:08

    • Partager sur Facebook
    • Partager sur Twitter
    A Vaincre sans péril on finit par triompher sans gloire  ->  le Cid de corneille
      19 novembre 2019 à 12:26:51

      Bonjour,

      Visiblement, tu a dans ton JSON un 'd' au lieu d'un "d". Le message d'erreur t'indique que les noms des champs doivent être écrit entre double-quotes. Pas entre simple-quotes.

      Il nous faudrait plus d'informations concernant le JSON que tu essai de dé-sérialiser.

      Bonne journée.

      • Partager sur Facebook
      • Partager sur Twitter
      printf("Les rudiments de la programmation ? Nan mais Hello quoi !");

      decodage json avec jackson

      × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
      × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
      • Editeur
      • Markdown