Добавить объект json в массив json - PullRequest
1 голос
/ 24 апреля 2019

Я пытаюсь добавить объект json в существующий массив json с помощью jsonlite.Объект json, который я пытаюсь добавить, создается с помощью toJSON.

Например:

library(jsonlite)

order1 <- list(a = 1, b = 2, c = 3)
order2 <- list(a = 4, b = 5, c = 6)

# step1 represents my already existing json array
step1 <- toJSON(list(order1, order2), auto_unbox = TRUE)
# [{"a":1,"b":2,"c":3},{"a":4,"b":5,"c":6}] 

# order3 is a list that I would like to append to the step1array
order3 <- list(a = 7, b = 8, c = 9)

Я пробовал:

step2 <- toJSON(list(fromJSON(step1), order3), auto_unbox = TRUE)

Но, к сожалению, это выплевывает:

[[{"a":1,"b":2,"c":3},{"a":4,"b":5,"c":6}],{"a":7,"b":8,"c":9}] 

В то время как мой ожидаемый результат :

[{"a":1,"b":2,"c":3},{"a":4,"b":5,"c":6},{"a":7,"b":8,"c":9}] 

Чего мне не хватает?

edit:

Я решил эту проблему с помощью rbind_pages, но это кажется немного неэффективным.Если есть лучшее решение, я все уши:)

toJSON(rbind_pages(list(fromJSON(step1), data.frame(order3))))
# [{"a":1,"b":2,"c":3},{"a":4,"b":5,"c":6},{"a":7,"b":8,"c":9}] 

1 Ответ

2 голосов
/ 24 апреля 2019

Do:

toJSON(rbind(fromJSON(step1), order3))

Результат:

[{"a":1,"b":2,"c":3},{"a":4,"b":5,"c":6},{"a":7,"b":8,"c":9}]

fromJSON возвращает фрейм данных, затем вы должны добавить order3 как новую строку с rbind.Если вы затем конвертируете этот фрейм данных в JSON, он возвращает то, что вы ищете.

Вам не нужно конвертировать order3 из списка в фрейм данных, чтобы привязать его как новую строку.Нет необходимости преобразовывать фрейм данных в список перед его преобразованием в JSON.

...