- xml - AJAX/Jquery XML 解析
- 具有多重继承的 XML 模式
- .net - 枚举序列化 Json 与 XML
- XML 简单类型、简单内容、复杂类型、复杂内容
目标:
使用 github.com/neelance/graphql-go starwars 示例,我正在尝试向我的 ReactJS 客户端编写 JSON 响应。结构的东西对我来说是全新的,顺便说一句,Golang 也是如此。
câu hỏi:
为了获得对以下示例 GraphQL 查询的适当响应,dữ liệu
变量应该是什么?
query clientQuery {
character(id: 1000) {
tên
appearsIn
}
}
附加信息:
根据我在这里和那里阅读的内容,dữ liệu
一定是某种结构。我在示例中有很多可用的结构(请参阅下面的 starwars.go)。
需要修改的代码(main.go):
gói chính
nhập khẩu (
"encoding/json"
"log"
"mạng/http"
"github.com/neelance/graphql-go"
"github.com/neelance/graphql-go/example/starwars"
"github.com/neelance/graphql-go/relay"
)
var schema *graphql.Schema
hàm init() {
schema = graphql.MustParseSchema(starwars.Schema, &starwars.Resolver{})
}
hàm main() {
port := ":8080"
log.Printf(`GraphQL server starting up on http://localhost%v`, port)
http.Handle("/query", &relay.Handler{Schema: schema})
http.HandleFunc("/graphql", func(w http.ResponseWriter, r *http.Request) {
// THIS IS SUPER WRONG, data should be something
// like data := starwars.Resolver{} or so?
data := `{"data":{"character":{"name":"Luke Skywalker","appearsIn":["NEWHOPE","EMPIRE","JEDI"]}}}`
w.Header().Set("Content-Type", "application/json")
w.WriteHeader(http.StatusCreated)
json.NewEncoder(w).Encode(data)
})
log.Fatal(http.ListenAndServe(port, nil))
}
引用文献 1 - starwars.go
引用文献 2 - relay.go
câu trả lời hay nhất
你的问题有点困惑。 您询问的是 JSON,但您想要的响应不是有效的 JSON 格式: 您似乎添加了不相关的 GraphQL 信息。
我不确定这是关于 GraphQL 还是 JSON 的问题。无论如何,我会尽力回答。
您的示例 dữ liệu
如下所示,因此我假设这是您要生成的结果:
data := `{"data":{"character":{"name":"Luke Skywalker","appearsIn":["NEWHOPE","EMPIRE","JEDI"]}}}`
让 Go 生成正确的 JSON 的一种简洁方法是创建包含数据的结构:
type Response struct {
Data Data `json:"data"`
}
type Data struct {
Character Character `json:"characer"`
}
type Character struct {
Name string `json:"name"`
AppearsIn []string `json:"appearsIn"`
}
然后你可以这样定义数据:
data := Response{
Data: Data{
Character: Character{
Name: "Luke Skywalker",
AppearsIn: []string{"NEWHOPE", "EMPIRE", "JEDI"},
},
},
}
也许这个问题不是关于 JSON 而不是 GraphQL。在这种情况下,您需要澄清您的问题。
引用资料
json:".."
):https://golang.org/pkg/encoding/json/#Marshal
关于http - Golang,如何使用结构通过 HTTP 编写 JSON 响应?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47485360/
Gần đây đã bắt đầu học MongoDB. Hôm nay thầy dạy chúng em lệnh mongoexport. Trong quá trình luyện tập, tôi gặp phải một vấn đề điển hình mà chưa có học viên nào, kể cả huấn luyện viên, từng gặp phải. Tôi đang sử dụng Mongo trên máy Windows 10 của mình
Tôi chưa quen với Lược đồ JSON và đã đọc Lược đồ JSON là gì, v.v. Nhưng tôi không biết cách liên kết Lược đồ JSON với JSON để xác thực dựa trên Lược đồ JSON đó. Có ai có thể giải thích được không?
Trong xml tôi có thể đưa một tệp vào một tệp xml khác và sử dụng nó. Nếu phần mềm của bạn lấy file cấu hình từ xml nhưng không có cách nào để tách cấu hình như apache/ngnix(nginx.conf - site-av
Tôi có một đối tượng JSON chứa một chuỗi mà chính nó là một đối tượng JSON. Làm cách nào để giải tuần tự hóa nó? Tôi muốn có thể làm điều gì đó như: #[derive(Deserialize)] struct B { c: S
Hãy xem xét JSON sau đây { "a": "{\"b\": 12, \"c\": \"test\"}" } Tôi muốn xác định cách đọc chung Reads[Outer[T]] cho Serialized này Nhập JSON
đóng cửa. Câu hỏi này không đáp ứng các nguyên tắc của Stack Overflow. Hiện tại nó không chấp nhận câu trả lời. Bạn muốn cải thiện vấn đề này? Câu hỏi được cập nhật để làm cho câu hỏi trở thành chủ đề cho Stack Overflow. Đóng cửa 11 tháng trước Cải thiện
Dự án cũ của tôi có dữ liệu ở định dạng JSON tiêu chuẩn trong MySQL. Đối với dự án hoàn toàn mới của tôi trong JS (Node.js) và DynamoDB, liên quan đến định dạng JSON tiêu chuẩn: Có nên chuyển đổi nó không?
Chuỗi giá trị JSON, số, true, false, null có hợp lệ không? Nghĩa là, tài liệu JSON có hợp lệ không? Hay nó phải là một mảng/đối tượng? Một số trình xác thực chấp nhận điều này (ví dụ: http://jso
Tôi có một chuỗi JSON và một trong các trường là trường văn bản. Trường văn bản này có thể chứa văn bản mà người dùng nhập vào giao diện người dùng, nếu văn bản họ nhập là văn bản JSON, có thể để giải thích cho một số mã hóa, tôi cần mã hóa văn bản của họ để nó không
Tôi đang xử lý dữ liệu thông qua các lệnh gọi IBM MQ và khi được ColdFusion 10 (10,0,11,285437) tuần tự hóa thì 0 được trả về là +0,0, dẫn đến JSON không hợp lệ và không thể giải tuần tự hóa. sPl
Tôi đang tạo một hàm băm từ ba mảng và sau đó cố gắng tạo một json. Tôi đã chuyển đối tượng json có mảng thành công. yêu cầu 'json' A = [['A1', 'A2', 'A3'],
Tôi nhận được JSON từ API và phản hồi có thể là một trong 30 loại. Mỗi loại có một tập hợp các trường duy nhất, nhưng tất cả các phản hồi đều có một loại trường cho biết đó là loại gì. Cách tiếp cận của tôi là sử dụng serde. Tôi tạo cấu trúc cho từng loại phản hồi và
Tôi đang tải xuống tệp JSON mà tôi đã kiểm tra là JSON hợp lệ có "https://jsonlint.com" vào thư mục tài liệu. Sau đó, tôi mở tệp và kiểm tra lại và nó hiển thị JSON không hợp lệ. Làm thế nào điều này có thể xảy ra? ? ? ? Đây là
Tôi đang cố gắng tạo động một đối tượng JSON dựa trên dữ liệu nhận được từ API. Dữ liệu mẫu nhận được: Giải mã dữ liệu vào cấu trúc CiItems được đưa ra bên dưới { "class_name": "test", "
Tôi muốn chuyển đổi từ chuỗi thành đối tượng. Từ {"key1": "{\n \"key2\": \"value2\",\n \"key3\": {\n \"key4\": \"value4\"\n }\n
Hiện tại tôi đang sử dụng đoạn mã sau để chuyển đổi json lồng nhau thành json phẳng: import ("fmt" "github.com/nytlabs/gojsonexplode" ) func
Tôi có một ứng dụng sử dụng dữ liệu từ API của bên thứ ba. Tôi cần giải mã json thành một cấu trúc, yêu cầu cấu trúc đó phải có thẻ json với trường json "đến". Các trường json gửi đi có các quy ước đặt tên khác nhau nên tôi cần các quy ước đặt tên khác nhau
Tôi muốn sử dụng lược đồ JSON để xác thực các giá trị nhất định. Tôi có hai đối tượng, gọi chúng là trackItems và trackItemGroups. trackItemGroups là tên nhóm và trackItem
Hãy xem xét mẫu lớp trường hợp sau, trường hợp lớp Y (a: String, b: String) trường hợp X (giả: String, b: Y) trường b là tùy chọn và một số tập dữ liệu của tôi không có từ nào
Tôi đang lưu trữ đầu ra của cat ~/path/to/file/blah jq tojson trong một biến để sử dụng sau này trong POST cuộn tròn với nội dung JSON. Nó hoạt động tốt, nhưng nó loại bỏ tất cả các dòng mới. Tôi biết
Tôi là một lập trình viên xuất sắc, rất giỏi!