我有2个json对象,想要将它们合并到R中的一个唯一对象中。
这里是文件的内容:
对象1:
{
"value": [
"1",
"2",
"3"
]
}
对象2:
{
"value": [
"4",
"5",
"6"
]
}
预期结果
{
"value": [
"1",
"2",
"3",
"4",
"5",
"6"
]
}
我在其他语言中找到了类似的问题(例如this question),但我想在R中这样做(我使用jqr包)。
你知道吗? 谢谢。答案 0 :(得分:5)
为了证明@Gregor的建议,这是一个例子。
# Store JSON content as lists (lst1, lst2)
library(jsonlite);
lst1 <- fromJSON(txt =
'{
"value": [
"1",
"2",
"3"
]
}')
lst2 <- fromJSON(txt =
'{
"value": [
"4",
"5",
"6"
]
}')
# Merge lst1 and lst2 and output as JSON
toJSON(Map(c, lst1, lst2))
#{"value":["1","2","3","4","5","6"]}
注意,这适用于您提供的样本数据;如果你有多个密钥(可能有一些密钥存在于一个JSON中而不是另一个密钥),则需要调整组合/合并策略。
答案 1 :(得分:3)
我仍然在考虑jqr
,所以可能会有一个更好,更简洁的解决方案,而不需要额外的paste
。
jqr::jq(paste0(js1, js2), ".value[]") %>% ## extract the 'value's
combine() %>% ## combine to a single JSON
paste0('{"value":', .,"}") ## construct output
# [1] "{\"value\":[\"1\", \"2\", \"3\", \"4\", \"5\", \"6\"]}"