Heim  >  Artikel  >  Backend-Entwicklung  >  Wie entferne ich unerwünschte Zeichen zwischen Schlüsseln und Werten in JSON?

Wie entferne ich unerwünschte Zeichen zwischen Schlüsseln und Werten in JSON?

WBOY
WBOYnach vorne
2024-02-09 17:15:071101Durchsuche

Wie entferne ich unerwünschte Zeichen zwischen Schlüsseln und Werten in JSON?

php-Editor Strawberry ist hier, um Ihnen einen Tipp zur JSON-Verarbeitung zu geben: Wie lösche ich unnötige Zeichen zwischen Schlüsseln und Werten in JSON? Bei der Verarbeitung von JSON-Daten müssen wir häufig einige nutzlose Zeichen bereinigen, um die Lesbarkeit der Daten zu verbessern und den Umfang der Datenübertragung zu reduzieren. Durch die Verwendung der PHP-bezogenen Funktionen und regulären Ausdrücke können wir unnötige Zeichen zwischen Schlüsseln und Werten in JSON problemlos entfernen und so die Daten aufgeräumter und standardisierter gestalten. Als nächstes werde ich die spezifischen Betriebsschritte und die Code-Implementierung im Detail vorstellen.

Frageninhalt

Ich habe JSON wie folgt: {"key1": "value1", n n "key2": "value2nwithnewline"}

Ich möchte:

  1. nn löschen
  2. Wert2n und Zeilenumbrüche beibehalten.

Also werde ich einen gültigen JSON haben.

Ich habe :regex ausprobiert, konnte aber nicht herausfinden, wie man außerhalb von Schlüsseln und Werten spezifiziert.

Und das:

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())
}

Go-Spielplatz-Link: https://go.dev/play/p/zvNSCuE4SjQ

Das funktioniert nicht, da n tatsächlich n sein kann. n 实际上是 n

解决方法

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

Problemumgehung

cleaned := strings.ReplaceAll(input, "\n \n ", "")Angesichts der Parameter Ihrer Frage können Sie strings.ReplaceAll Alle ersetzen nn:

cleaned.WriteByte(jsonStr[i])

🎜Wenn Sie Ihre aktuelle Strategie weiterhin anwenden möchten, werden Sie auf einige Probleme stoßen. Eine davon ist, dass Sie unabhängig von Ihrem Zustand immer eine Zeichenfolge schreiben: 🎜 passiert in Ihren if- und else-Fällen. 🎜

Das obige ist der detaillierte Inhalt vonWie entferne ich unerwünschte Zeichen zwischen Schlüsseln und Werten in JSON?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:stackoverflow.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen