Maison > développement back-end > Golang > Comment supprimer les caractères indésirables entre les clés et les valeurs en JSON ?

Comment supprimer les caractères indésirables entre les clés et les valeurs en JSON ?

WBOY
Libérer: 2024-02-09 17:15:07
avant
1123 Les gens l'ont consulté

Comment supprimer les caractères indésirables entre les clés et les valeurs en JSON ?

l'éditeur php Strawberry est là pour partager avec vous une astuce sur le traitement JSON : Comment supprimer les caractères inutiles entre les clés et les valeurs en JSON ? Lors du traitement des données JSON, nous devons souvent nettoyer certains caractères inutiles pour améliorer la lisibilité des données et réduire la taille de la transmission des données. En utilisant les fonctions et expressions régulières associées à PHP, nous pouvons facilement supprimer les caractères inutiles entre les clés et les valeurs dans JSON, rendant les données plus ordonnées et standardisées. Ensuite, je présenterai en détail les étapes de fonctionnement spécifiques et la mise en œuvre du code.

Contenu de la question

J'ai JSON comme ceci : {"key1": "value1", n n "key2": "value2nwithnewline"}

Je veux :

  1. Supprimer nn
  2. Préserver les caractères value2n et newline.

J'aurai donc un JSON valide.

J'ai essayé :regex mais je n'ai pas compris comment spécifier en dehors des clés et des valeurs.

Et ça :

package main

import (
    "bytes"
    "fmt"
)

func main() {
    jsonStr := `{"key1": "value1", \n \n "key2": "value2\nwithnewline"}`
    var cleaned bytes.Buffer
    quoteCount := 0

    for i := 0; i < len(jsonStr); i++ {
        if jsonStr[i] == '"' {
            quoteCount++
        }

        if quoteCount%2 == 0 && jsonStr[i] != '\n' {
            cleaned.WriteByte(jsonStr[i])
        } else if quoteCount%2 == 1 {
            cleaned.WriteByte(jsonStr[i])
        }
    }

    fmt.Println(cleaned.String())
}
Copier après la connexion

Lien Go Playground : https://go.dev/play/p/zvNSCuE4SjQ

Cela ne fonctionne pas car cela peut n en fait être nn 实际上是 n

解决方法

鉴于您问题的参数,您可以使用 strings.ReplaceAll

Solution de contournement

cleaned := strings.ReplaceAll(input, "\n \n ", "")Compte tenu des paramètres de votre question, vous pouvez utiliser strings.ReplaceAll Remplacez tout nn :

cleaned.WriteByte(jsonStr[i])

🎜Si vous souhaitez continuer à utiliser votre stratégie actuelle, vous rencontrerez quelques problèmes. L'un d'eux est que quelle que soit votre condition, vous écrivez toujours une chaîne : 🎜 se produit dans vos cas if et else. 🎜

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
source:stackoverflow.com
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal