Полагаю, самый простой способ - сначала преобразовать его в фрейм данных, разбить столбец тегов и преобразовать обратно в JSON:
df <- dplyr::bind_rows(fromJSON('{ "id":"2317", "product":"112", "tag":"A,B,C"}'))
s <- strsplit(df$tag, split = ",")
n <- length(unlist(s))
df <- data.frame(id = rep(df$id, n), product = rep(df$product, n), tag = unlist(s))
toJSON(df)
Это даст вам:
[{"id":"2317","product":"112","tag":"A"},{"id":"2317","product":"112","tag":"B"},{"id":"2317","product":"112","tag":"C"}]
Вы можете легко записать это в файл, используя jsonlite::write_json(df, path = 'file_name.json')