首頁  >  文章  >  後端開發  >  如何刪除JSON中鍵和值之間不需要的字元?

如何刪除JSON中鍵和值之間不需要的字元?

WBOY
WBOY轉載
2024-02-09 17:15:071040瀏覽

如何刪除JSON中鍵和值之間不需要的字元?

php小編草莓在這裡跟大家分享一個有關JSON處理的技巧:如何刪除JSON中鍵和值之間不需要的字元?在處理JSON資料時,我們經常需要清理一些無用的字符,以提高資料的可讀性和減少資料傳輸的大小。透過使用PHP的相關函數和正規表示式,我們可以輕鬆地刪除JSON中鍵和值之間不需要的字符,讓資料更加整潔和規範。接下來,我將為大家詳細介紹具體的操作步驟和程式碼實作。

問題內容

我有這樣的JSON: {"key1": "value1", \n \n "key2": "value2\nwithnewline"}

我想要:

  1. 刪除\n\n
  2. 保留 value2\n和換行符。

所以我將擁有一個有效的 JSON。

我嘗試過:regex,但未能弄清楚如何在鍵和值之外指定。

還有這個:

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 遊樂場連結:https://go.dev/play/p/zvNSCuE4SjQ

#這不起作用,因為它可以\n 實際上是\ n

解決方法

鑑於您問題的參數,您可以使用strings.ReplaceAll 取代所有\n\n:

cleaned := strings.ReplaceAll(input, "\\n \\n ", "")

#如果您想繼續使用目前的策略,則會遇到一些問題。其中之一是,無論您的條件如何,您總是會寫入字串: cleaned.WriteByte(jsonStr[i]) 發生在您的 if 和 else 情況下。

以上是如何刪除JSON中鍵和值之間不需要的字元?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文轉載於:stackoverflow.com。如有侵權,請聯絡admin@php.cn刪除