Как перебрать фрагмент в GJSON - PullRequest
0 голосов
/ 21 ноября 2018

Как зациклить диапазон или регулярное выражение # [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],в "#" ?

1 Ответ

0 голосов
/ 21 ноября 2018

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)
    }

}

Детская площадка

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...