Rumah > pembangunan bahagian belakang > Golang > Bagaimana untuk Menyahkod JSON dengan Struktur Tidak Diketahui dalam Go?

Bagaimana untuk Menyahkod JSON dengan Struktur Tidak Diketahui dalam Go?

Barbara Streisand
Lepaskan: 2024-12-28 10:23:11
asal
380 orang telah melayarinya

How to Decode JSON with an Unknown Structure in Go?

Menyahkod JSON dengan Struktur Tidak Diketahui

Dalam bidang pengaturcaraan, JSON (JavaScript Object Notation) selalunya berfungsi sebagai alat untuk mewakili data dalam aplikasi perisian. Walau bagaimanapun, apabila menghadapi JSON dengan struktur yang tidak dikenali, mengekstrak maklumat tertentu boleh menimbulkan cabaran. Pertimbangkan senario berikut:

Anda perlu memproses rentetan JSON seperti ini:

{ 
  "votes": { 
    "option_A": "3" 
  } 
}
Salin selepas log masuk

Matlamat anda adalah untuk menambah JSON ini dengan memasukkan kunci "kira", menghasilkan output berikut :

{ 
  "votes": { 
    "option_A": "3" 
  }, 
  "count": "1" 
}
Salin selepas log masuk
Salin selepas log masuk

Cabaran timbul daripada struktur JSON awal yang tidak diketahui. Kaedah tradisional, seperti menggunakan fungsi json.Unmarshal dengan struct ditaip khusus, menjadi tidak boleh digunakan.

Penyelesaian: Unmarshal into a Map

Untuk mengatasi halangan ini, kami boleh memanfaatkan fleksibiliti peta Go. Coretan kod berikut menunjukkan cara untuk menyahmarshal JSON ke dalam peta[rentetan]antara muka{}:

package main

import (
    "encoding/json"
    "fmt"
)

func main() {
    in := []byte(`{ 
      "votes": { 
        "option_A": "3" 
      } 
    }`)
    var raw map[string]interface{}
    if err := json.Unmarshal(in, &raw); err != nil {
        panic(err)
    }
    
    // Modify the map by adding the "count" key
    raw["count"] = 1
    
    // Marshal the modified map back to JSON
    out, err := json.Marshal(raw)
    if err != nil {
        panic(err)
    }
    
    fmt.Println(string(out))
}
Salin selepas log masuk

Dengan menyahmarshal JSON ke dalam peta, kami mencipta struktur data jenis-agnostik dengan berkesan yang boleh menampung sebarang input . Ia membolehkan kami mengakses dan mengubah suai kandungan JSON secara dinamik tanpa bergantung pada jenis yang dipratentukan.

Output akhir kod di atas adalah seperti berikut:

{ 
  "votes": { 
    "option_A": "3" 
  }, 
  "count": "1" 
}
Salin selepas log masuk
Salin selepas log masuk

Pendekatan ini menyediakan kemudahan dan fleksibel penyelesaian untuk menyahkod JSON dengan struktur yang tidak diketahui, memperkasakan pembangun untuk mengekstrak dan memanipulasi data dengan cekap.

Atas ialah kandungan terperinci Bagaimana untuk Menyahkod JSON dengan Struktur Tidak Diketahui dalam Go?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan