我是 Go 的新手,但努力尝试..
我正在尝试编写一些逻辑,需要检查 struct 的属性是否仅包含一个元素,或者第一个元素只有一个子元素。
主要结构是这样的:
type ChartOptins struct {
Filters Filter `json:"filters"`
Charts interface{} `json:"charts"`
}
图表天生就是这样的结构数组的组合:
$filters = array(
"filters" => array(
"DayStart" => "12-01-2015",
"DayEnd" => "12-05-2015",
"TimePeriods"=> array(
array("qqq","www"),
),
"lines" => array(
"first","avokado","drunduki"
)
),
"charts" => array(
"noagg" => array(
array(
"name" => "HOLD",
"type" => "line"
),
array(
"name" => "UKKR",
"type" => "line"
),
array(
"name" => "SVO",
"type" => "line"
),
),
"oracle" => array(
array(
"name" => "TDD",
"type" => "line"
),
)
),
);
进入结构,ChartOptions我从 POST 请求解析 JSON。JSON 如下所示:
{ "filters": { "dayStart": "11-10-2015", "dayEnd": "21-10-2015", "timePeriods": [ [ "qqq", "www" ] ], "lines": [ "first", "avokado", "drunduki" ] }, "charts": { "noagg": [ { "name": "HOLD", "type": "line" } ] } }
所以 ,charts只能有 1 个源和 1 个元素,或者在任意数量的源中包含任意数量的元素。
"charts" : { "noagg": [ { "name": "HOLD", "type": "line" } ] }
or
"charts" : { "noagg": [ { "name": "HOLD", "type": "line" } , { "name": "TDD", "type": "line" } , { "name": "SVO", "type": "line" } ] }
当然,这是转到脚本的 JSON 元素,我将它们解析为 interface{}。当我尝试使用时len(),Go 说我不能在界面上使用它..
处理元素数量的最佳实践是什么,实现这种检查的最佳方法是什么?
守候你守候我
尚方宝剑之说
相关分类