json ফলস্বরূপ খালি জসন মুদ্রণ করছে



go encoding (1)

encoding/json প্যাকেজ encoding/json ক্ষেত্রগুলি অ্যাক্সেস করতে প্রতিবিম্ব (প্যাকেজ প্রতিবিম্বিত) ব্যবহার করে। আপনার কাঠামোর ক্ষেত্রগুলি এটির কাজ করতে রফতানি করতে হবে (বড় হাতের অক্ষর দিয়ে সেগুলি শুরু করুন):

type Book struct {
    Isbn   string
    Title  string
    Author string
    Price  float32
}

এবং স্ক্যান করার সময়:

err := rows.Scan(&bk.Isbn, &bk.Title, &bk.Author, &bk.Price)

json.Marshal() উদ্ধৃতি:

JSON অবজেক্ট হিসাবে মানগুলি এনকোড করুন ruct প্রতিটি রফতানি স্ট্রাক্ট ক্ষেত্র বস্তুর সদস্য হয়ে যায় ...

এই প্রশ্নের ইতিমধ্যে এখানে একটি উত্তর আছে:

আমি আমার পোস্টগ্রিস ডিবি থেকে কিছু তথ্য পুনরুদ্ধার করার চেষ্টা করছি এবং এটিকে জোনসন হিসাবে localhost/db মুদ্রণ করছি। আমি জেসন ছাড়াই এগুলি মুদ্রণ করতে সফল হয়েছি তবে জসন এগুলি দরকার।

main.go:

package main

import (
    "database/sql"
    "encoding/json"
    "fmt"
    "log"
    "net/http"

    _ "github.com/lib/pq"
)

type Book struct {
    isbn   string
    title  string
    author string
    price  float32
}

var b []Book

func main() {

    db, err := sql.Open("postgres", "postgres://****:****@localhost/postgres?sslmode=disable")

    if err != nil {
        log.Fatal(err)
    }
    rows, err := db.Query("SELECT * FROM books")
    if err != nil {
        log.Fatal(err)
    }
    defer rows.Close()

    var bks []Book
    for rows.Next() {
        bk := new(Book)
        err := rows.Scan(&bk.isbn, &bk.title, &bk.author, &bk.price)
        if err != nil {
            log.Fatal(err)
        }
        bks = append(bks, *bk)
    }
    if err = rows.Err(); err != nil {
        log.Fatal(err)
    }

    b = bks

    http.HandleFunc("/db", getBooksFromDB)
    http.ListenAndServe("localhost:1337", nil)

}

func getBooksFromDB(w http.ResponseWriter, r *http.Request) {

    fmt.Println(b)
    response, err := json.Marshal(b)
    if err != nil {
        panic(err)

    }

    fmt.Fprintf(w, string(response))
}

লোকালহোস্ট অ্যাক্সেস করার পরে আমি যা পাই তা হ'ল: 1337 / ডিবি

এবং এটি টার্মিনালের আউটপুট:

 [{978-1503261969 Emma Jayne Austen 9.44} {978-1505255607 The Time Machine H. G. Wells 5.99} {978-1503379640 The Prince Niccolò Machiavelli 6.99}]

কেউ কি জানেন সমস্যা কি?





encoding