在r中的json字符串中获取所有可能的键/键路径

时间:2019-05-09 04:14:56

标签: r

如何在json字符串中获取所有可能的json路径?通常我会变得庞大

例如,我想找回一些东西:

result = data.frame(paths = c('name',
                                                      'name.first'
                                                      ,'name.last'
                                                      ,'address'
                                                      ,'address.city'
                                                      ,'address.state'
                                                      ,'age'
                                                      ,'income'
                                                      ,'block'))

 result

给出了这样的内容...

myjson='{  

"name": {
"first": "jack",
"last": "smith"
},
"address": {"city": "bigtown", "state": "texas"},
"age": "21",
"income": "123",
"block" :["abc","xyz"]
}'

我尝试过尝试jsonlite::fromJson,但这似乎并不能使我完全了解所追求的目标。

1 个答案:

答案 0 :(得分:0)

这将为您提供完整的路径:

data.frame(result = names(as.data.frame(jsonlite::fromJSON(myjson))))

         result
1    name.first
2     name.last
3  address.city
4 address.state
5           age
6        income
7         block   

如果您需要所有部分路径以及所有完整路径:

data.frame(
  result = sort(unique(
    c(names(fromJSON(myjson)), 
      names(as.data.frame(jsonlite::fromJSON(myjson))))))
  )

         result
1       address
2  address.city
3 address.state
4           age
5         block
6        income
7          name
8    name.first
9     name.last