Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimana untuk mengalih keluar aksara yang tidak diingini antara kunci dan nilai dalam JSON?

Bagaimana untuk mengalih keluar aksara yang tidak diingini antara kunci dan nilai dalam JSON?

WBOY
WBOYke hadapan
2024-02-09 17:15:071102semak imbas

Bagaimana untuk mengalih keluar aksara yang tidak diingini antara kunci dan nilai dalam JSON?

editor php Strawberry ada di sini untuk berkongsi dengan anda petua tentang pemprosesan JSON: Bagaimana untuk memadam aksara yang tidak diperlukan antara kunci dan nilai dalam JSON? Semasa memproses data JSON, kami selalunya perlu membersihkan beberapa aksara yang tidak berguna untuk meningkatkan kebolehbacaan data dan mengurangkan saiz penghantaran data. Dengan menggunakan fungsi berkaitan PHP dan ungkapan biasa, kami boleh mengalih keluar aksara yang tidak diperlukan dengan mudah antara kunci dan nilai dalam JSON, menjadikan data lebih kemas dan piawai. Seterusnya, saya akan memperkenalkan langkah operasi khusus dan pelaksanaan kod secara terperinci.

Kandungan soalan

Saya ada JSON seperti ini: {"key1": "value1", n n "key2": "value2nwithnewline"}

Saya mahu:

  1. Padam nn
  2. Kekalkan nilai2n dan aksara baris baharu.

Jadi saya akan mempunyai JSON yang sah.

Saya mencuba :regex tetapi tidak dapat mengetahui cara untuk menentukan di luar kunci dan nilai.

Dan ini:

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

Pautan pergi taman permainan: https://go.dev/play/p/zvNSCuE4SjQ

Ini tidak berfungsi kerana ia boleh n sebenarnya menjadi nn 实际上是 n

解决方法

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

Penyelesaian

cleaned := strings.ReplaceAll(input, "\n \n ", "")Memandangkan parameter soalan anda, anda boleh menggunakan rentetan.GantiSemua Gantikan semua nn:

cleaned.WriteByte(jsonStr[i])

🎜Jika anda ingin terus menggunakan strategi semasa anda, anda akan menghadapi beberapa masalah. Salah satunya ialah tanpa mengira keadaan anda, anda sentiasa menulis rentetan: 🎜 berlaku dalam kes if and else anda. 🎜

Atas ialah kandungan terperinci Bagaimana untuk mengalih keluar aksara yang tidak diingini antara kunci dan nilai dalam JSON?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Artikel ini dikembalikan pada:stackoverflow.com. Jika ada pelanggaran, sila hubungi admin@php.cn Padam