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
Barbara Streisandasal
2024-12-28 10:23:11363semak imbas

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" 
  } 
}

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

{ 
  "votes": { 
    "option_A": "3" 
  }, 
  "count": "1" 
}

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

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" 
}

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!

Kenyataan:
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