目前我使用下面的代碼嵌套JSON轉換成扁平JSON:扁平轉換成JSON JSON嵌套
import (
"fmt"
"github.com/nytlabs/gojsonexplode"
)
func main() {
input := `{"person":{"name":"Joe", "address":{"street":"123 Main St."}}}`
out, err := gojsonexplode.Explodejsonstr(input, ".")
if err != nil {
// handle error
}
fmt.Println(out)
}
這是輸出:{"person.address.street":"123 Main St.","person.name":"Joe"}
一些處理之後,現在我想恢復這個數據到正常的嵌套json,但我無法這樣做。
我最近的猜測是嵌套地圖的使用,但我不知道如何創建N級別的嵌套地圖。
編輯:爲什麼我需要這樣的:我在存儲數據的Redis,如果我JSON存儲到Redis的話,我不能搜索鍵,這就是爲什麼我轉換鍵進入key1:key2:key3: some_value
爲什麼你不只是在處理JSON的非原始形式?沒有任何額外的信息,這似乎是一個奇怪的轉換。 –
因爲我需要將它存儲到Redis中,並且如果我將json存儲到Redis中,我無法搜索特定的鍵。 這就是我爲什麼要將鍵轉換爲這個key1:key2:key3:值等。但是,在某些時候我再次需要它在json中。 – Alen
這很有道理。你有沒有試圖爲gojsonexplode包編寫一個反轉函數? –