Декодирование потока JSON, который не заключен в квадратные скобки?

Попробуйте это, я предполагаю, что ваш единственный по сравнению с датой.

…
elseif($range == "week") {
    $post= $post->whereDate('date', <', Carbon::now()->addDays(7)->format('Y-m-d'));
}
elseif($range == "day") {
    $post= $post->whereDate('date', '=', Carbon::today()->format('Y-m-d'));
}
2
задан Jay Doh 19 January 2019 в 11:13
поделиться

2 ответа

Я закончил тем, что сделал это:

f, err := os.Open(fname)
if err != nil {
    // handle error
}
d := json.NewDecoder(f)
for {
    var v ValueTypeToUnmarshalTo
    if err := d.Decode(&v); err == io.EOF {
        break // done decoding file
    } else if err != nil {
        // handle error
    }
    // do something with v
}

Декодер, кажется, игнорирует переводы строки, поэтому нет даже необходимости использовать потоковый декодер. Это только если у вас есть массив JSON.

Взято из части этого ответа: https://stackoverflow.com/a/34388102

Спасибо за помощь!

0
ответ дан Jay Doh 19 January 2019 в 11:13
поделиться

Одним из предложений является использование трубы, а также добавление и добавление [].

reader := strings.NewReader(jsonStream)

pr, pw := io.Pipe()

go func() {
    pw.Write([]byte(`[`))
    io.Copy(pw, reader)
    pw.Write([]byte(`]`))
}()

dec := json.NewDecoder(pr)

Вы должны добавить некоторую обработку ошибок.

См. https://play.golang.org/p/Oogu_NdAUyR для всего этого.

0
ответ дан Jonas G. Drange 19 January 2019 в 11:13
поделиться
Другие вопросы по тегам:

Похожие вопросы: