首页 > 解决方案 > 在r中的json字符串中获取所有可能的键/键路径

问题描述

如何在 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但这似乎并没有让我得到我所追求的东西。

标签: r

解决方案


这将为您提供完整路径:

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

推荐阅读