子对象未使用golang分析graphql
对象内部的对象本身使用空字段进行解析 输入:子对象未使用golang分析graphql,go,graphql,graphql-go,Go,Graphql,Graphql Go,对象内部的对象本身使用空字段进行解析 输入: { Products(search: {limit: 1, filters: {product_id: {gte: 5}}}) { data { product_id product_name sales_history{ total_check } } } } 输出: { "data": { "Products": { "data":
{
Products(search: {limit: 1, filters: {product_id: {gte: 5}}}) {
data {
product_id
product_name
sales_history{
total_check
}
}
}
}
输出:
{
"data": {
"Products": {
"data": [
{
"product_id": 35,
"product_name": "testpr",
"sales_history": {}
}
]
}
}
}
产品类型:
gql.ProductType = graphql.NewObject(graphql.ObjectConfig{
Name: "Product",
Fields: graphql.Fields{
"product_id": &graphql.Field{
Type: graphql.Int,
},
"product_name": &graphql.Field{
Type: graphql.String,
},
"sales_history": &graphql.Field{
Type: gql.SalesHistoryType,
},
},
})
销售历史记录类型:
gql.SalesHistoryType = graphql.NewObject(graphql.ObjectConfig{
Name: "sales_history",
Fields: graphql.Fields{
"total_check": &graphql.Field{
Type: graphql.Float,
},
},
})
在界面中解析返回的映射:
地图[数据:[地图[产品编号:35产品名称:testpr销售记录:地图[总检查:671.20]]]
我自己创建了地图“sales_history”,否则与字段sales_history-null相反,问题在于最终地图的打包 这是错误的:
tmp := make(map[string]interface{}, 0)
tmp["total_check"] = v["total_check"]
v["sales_history"] = tmp
*有些字段是隐藏的
没错:
v["sales_history"] = make(map[string]interface{}, 0)
v["sales_history"].(map[string]interface{})["total_check"] = v["total_check"]