Grenouille06
Grenouille06

Reputation: 63

replace part of a text with jq in a bash script

I have a problem with some JSON files. I have an old API to inject some datas to CKAN.

When I send a JSON file, specifics characters '\r\n' make my API to crash and send me an error "Erreur JSON : Error decoding JSON data. Error: ValueError('No JSON object could be decoded',)"

Here is a part of the JSON files:

   {
  "formatVersion": "v002",
  "objetsTouristiques": [
    {
      "metadonnees": [
        {
          "contenus": [
            {
              "metadonnee": {
                "dateMaj": 1656444611258,
                "nombreAvis": 3597,
                "couleur": "#71a63e",
                "label": "Très bon",
                "note": 8.4
              },
              "cible": "general"
            }
          ],
          "noeudId": "fairguest"
        }
      ],
      "aspects": [
        {
          "presentation": {
            "descriptifDetaille": {
              "libelleFr": "Bureaux d’accueil au rez-de-chaussée et au 4e étage. \r\n- Hôtesse multilingue. \r\n- Services spécialisés clientèle internationale (vos clients, si vous en faites la demande, bénéficient entre autres d’une carte d’escompte exceptionnel de 10% \u0019personnalisée avec le logo de votre choix, ainsi que des plans de ville, un accueil personnalisé possible, salon VIP, etc…). \r\n- Détaxe à l’exportation de 12% au-dessus de 175 € dans la journée pour les pays hors de l’Union Européenne, selon la réglementation en vigueur)."
            }
          },
          "champsAspect": [
            "presentation.descriptifDetaille"
          ],
          "aspect": "GROUPES"
        },

How can I change \r\n to \n with jq please ?

Thanks for your help

Upvotes: 0

Views: 157

Answers (1)

0stone0
0stone0

Reputation: 44083

walk(if type == "string" then gsub("\r\n"; "\n") else . end)

will walk() over each (nested) value and performs a sub() where we replace \r\n with \n


Try it online

Upvotes: 4

Related Questions