Aktueller Standort: Startseite> Neueste Artikel> Ersetzen Sie den Feldnamen in JSON -Daten

Ersetzen Sie den Feldnamen in JSON -Daten

M66 2025-06-02

Bei der Verarbeitung von JSON -Daten in PHP müssen wir manchmal den Feldnamen ersetzen. Obwohl die häufig verwendete Methode darin besteht, JSON in ein Array zu dekodieren und dann in einigen Szenarien zu verarbeiten, ist es schneller, den Feldnamen der JSON -Zeichenfolge direkt durch reguläre Ausdrücke zu ersetzen. In diesem Artikel wird detailliert erläutert, wie die Feldnamen in JSON -Daten mithilfe der MB_eregi_Replace -Funktion von PHP ersetzt und mit dem Beispielcode erläutert werden.


Was ist mb_eregi_replace?

mb_eregi_replace ist eine regelmäßige Ersatzfunktion in der PHP-Multi-Byte-String-Funktionsbibliothek (Mbstring). Es unterstützt den regelmäßigen Ersatz für den Fall von Fall, die Saiten ersetzen und Multi-Byte-Charakter-Codierung unterstützt, was für die Verarbeitung von Zeichenfolgen mit Multi-Byte-Zeichen wie Chinesen geeignet ist.

Funktionsprototyp:

 string mb_eregi_replace ( string $pattern , string $replacement , string $string [, string $option = "msr" ] )
  • $ muster : Das reguläre Ausdrucksmuster, das übereinstimmt (Fall unempfindlich)

  • $ Ersatz : Ersetzte Zeichenfolge

  • $ Zeichenfolge : Die eingegebene Zeichenfolge

  • $ Option : Optionaler Parameter, Geben Sie das Übereinstimmungsverhalten an, in der Regel mit Standardeinstellung


Warum JSON -Feldnamen durch mb_eregi_replace ersetzen?

  • JSON -String -Feldnamen werden normalerweise in doppelte Zitate eingewickelt, und es ist einfach, Fehler beim Ersetzen von direkten Zeichenfolgen zu machen.

  • mb_eregi_replace unterstützt Multi-byte und ist mit JSON in verschiedenen Codierungsformaten kompatibel.

  • Unterstützung des Falls unempfindlicher Ersatz, um Fallunterschiede zu vermeiden, die zu einem verpassten Ersatz führen.

  • Geeignet für einfache Austauschszenarien für Feldnamen und nicht zuerst JSON analysieren.


Ideen zum Ersetzen von JSON -Feldnamen

Angenommen, es gibt die folgende JSON -Zeichenfolge:

 {
  "UserName": "Zhang San",
  "UserAge": 28,
  "UserEmail": "zhangsan@example.com"
}

Wir möchten "Benutzer" in allen Feldnamen durch "Mitglied" ersetzen. Betriebsschritte:

  1. Verwenden Sie den regulären Matching -Feldnamen Teil, zum Beispiel, um den Benutzernamen in "Benutzername" zu entsprechen.

  2. Verwenden Sie MB_Eregi_Replace , um den Feldname des Matching -Feldes zu ersetzen.

  3. Eine neue JSON -Zeichenfolge ausgeben.


Beispielcode

 <?php
// Original JSON Saite
$json = '{"UserName":"Zhang San","UserAge":28,"UserEmail":"zhangsan@m66.net"}';

// Ersatzregeln definieren,Präfix des Feldnamens "User" Ersetzen durch "Member"
// Regelmäßiger Ausdruck entspricht doppelte Zitate mit User Der Feldname am Anfang,Erfassen Sie die zweite Hälfte des Feldes
$pattern = '"User([a-zA-Z0-9_]*)"';

// 替换Saite,Wille User Ersetzen durch Member,Halten Sie das Suffix unverändert
$replacement = '"Member\\1"';

// verwenden mb_eregi_replace Ersetzen
$newJson = mb_eregi_replace($pattern, $replacement, $json);

// Der Ausgang wird ersetzt JSON Saite
echo $newJson;
?>

Auslaufergebnisse

 {"MemberName":"Zhang San","MemberAge":28,"MemberEmail":"zhangsan@m66.net"}

Analyseanweisungen

  • Regulärer Ausdruck '"Benutzer ([A-Za-Z0-9 _]*)" entspricht allen Feldnamen, die mit "Benutzer" in doppelten Zitaten beginnen.

  • Verwenden Sie die Capture-Gruppe ([a-za-z0-9 _]*), um den Rest des Feldnamens zu erhalten.

  • Verwenden Sie "Mitglied \\ 1" , um "Benutzer" durch "Mitglied" zu ersetzen und das Feldnamensuffix beizubehalten.

  • Dies wirkt sich nicht auf den entsprechenden Wert des Feldes aus.

  • Der in JSON erscheinende URL -Domain -Name wurde durch M66.NET ersetzt, um den Anforderungen zu erfüllen.


Dinge zu beachten

  • Diese Methode ist nur für JSON mit einfacher Feldnamenstruktur und standardisiertem Format geeignet.

  • Wenn die JSON -Zeichenfolge komplexe verschachtelte Strukturen enthält, wird empfohlen, zuerst mit JSON_DECODE zu dekodieren, dann den Feldnamen durch Array -Operationen zu ersetzen und schließlich einen neuen JSON mit JSON_Encode zu generieren.

  • mb_eregi_replace unterstützt keine komplexe reguläre Syntax wie Behauptungen. Wenn die Ersatzanforderungen komplex sind, wählen Sie bitte die PCRE -Funktion oder das JSON -Auflösungsschema aus.