【发布时间】:2018-08-15 19:28:08
【问题描述】:
假设我有一个如下所示的嵌套 json 文件:
[{"toplevel":{"firstleveldata":{"id":12345,"no":123}},"secondleveldata":{"fruit":{"apples":"y"},"veg ":{"small":{"gree":{"fresh":{"available":3}}}}},"thirdleveldata":{"fruit":{"changes":[{"itemid":1 ,"subno":1,"green":[],"red":[{"extraid":2,"element":5}]}]}}}]
下面的 R 代码可以将它解析为一个不错的 data.frame,除了最后一个(如果可以修复那是一个奖励)
使用 C# 的简洁替代方案是什么样的?这不是我以前编码过的东西,所以不知道从哪里开始。
最终目标是将嵌套的 JSON 导出为 csv,多个 csv 带有主键/外键以在必要时合并。
上下文的 R 代码。
library(jsonlite)
library(tidyverse)
fun <- function(x)
{list(
#keys
id = pluck(x,"toplevel","firstleveldata","id", .default = NA),
no = pluck(x,"toplevel","firstleveldata","no", .default = NA),
apples = pluck(x,"secondleveldata","fruit","apples", .default = NA),
itemid = pluck(x,"toplevel","thirdleveldata","fruit","changes","itemid", .default = NA) #doesn't work)}
out<-map_df(list.files("my_json_file",full.names=TRUE),~map_df(fromJSON(txt=., simplifyVector=FALSE), fun))
out
谢谢
【问题讨论】:
-
创建一个代表你的数据的模型,然后使用
Json.NET进行反序列化/序列化
标签: c# r json tidyverse jsonlite