猿问

如何在 GJSON 中循环切片

如何循环范围或正则表达式 #[1 - 12] 以在库 GJSON gjson 库中显示基于 #

像这样的例子,我在下面有图片 json :

在此处输入图像描述

我尝试像下面这样循环

tempPayments:="Envelope.Body.GetCustomReportResponse.GetCustomReportResult.ContractSummary.PaymentCalendarList.PaymentCalendar."

resultPriod1 := gjson.Get(jsonString,tempPayments + "#.Date")

for _, datePriod := range resultPriod1.Array() {

    println(datePriod[1].String())

}

如何在“#”中显示范围 [1-10] 之间的结果?


梦里花落0921
浏览 92回答 1
1回答

哆啦的时光机

Result.Array()Result将当前结果转换为( )的切片[]Result。因此,您可以只为您想要的范围取一片。例如resultPriod.Array()[0:12]获取前 12 个元素。以此简化版为例:func main() {    jsonString := `{    "PaymentCalendarList": {        "PaymentCalendar": [            {"ContractSubmitted": 10,             "Date": "2018-01-01T01:01:01"},            {"ContractSubmitted": 20,             "Date": "2018-01-01T02:02:02"},            {"ContractSubmitted": 30,             "Date": "2018-01-01T03:03:03"}            {"ContractSubmitted": 40,             "Date": "2018-01-01T04:04:04"}            {"ContractSubmitted": 50,             "Date": "2018-01-01T05:05:05"}        ]    }}`    tempPayments := "PaymentCalendarList.PaymentCalendar."    resultPeriod := gjson.Get(jsonString, tempPayments+"#.Date")    # Take the first 3 results    for _, datePeriod := range resultPeriod.Array()[0:3] {        fmt.Println(datePeriod)    }}操场
随时随地看视频慕课网APP

相关分类

Go
我要回答