从R中的字符串中提取字段和值

从R中的字符串中提取字段和值,r,regex,stringr,R,Regex,Stringr,我有一根绳子: x <- '[{"code":"B1182","description":"Tire pressure monitor module","faultInformations":[{"description":"---"},{"description":"TRUE","description_eng":"TRUE","description_fre":"TRUE","description_ger":"TRUE","description_spa":"TRUE","descr

我有一根绳子:

x <- '[{"code":"B1182","description":"Tire pressure monitor module","faultInformations":[{"description":"---"},{"description":"TRUE","description_eng":"TRUE","description_fre":"TRUE","description_ger":"TRUE","description_spa":"TRUE","description_ita":"TRUE","description_tur":"TRUE"}],"freezeFrames":[],"enhancedDtcInfos":[],"status":"ACTIVE","system":"MULTIFUNCTION","systemMeta":{"systemName":null,"subSystemName":null},"description_eng":"Tire pressure monitor module","description_fre":"Module de surveillance de la pression des pneus","description_ger":"Reifendrucküberwachung","description_spa":"Módulo de control de la presión de los neumáticos","description_ita":"Modulo monitor di pressione pneumatico","description_tur":"Lastik basıncı izleme modülü"},{"code":"B124D","description":"Sensor, tyre pressure","faultInformations":[{"description":"---"},{"description":"TRUE","description_eng":"TRUE","description_fre":"TRUE","description_ger":"TRUE","description_spa":"TRUE","description_ita":"TRUE","description_tur":"TRUE"}],"freezeFrames":[],"enhancedDtcInfos":[],"status":"ACTIVE","system":"MULTIFUNCTION","systemMeta":{"systemName":null,"subSystemName":null},"description_eng":"Sensor, tyre pressure","description_fre":"Capteur, pression des pneus","description_ger":"Sensor Reifendruck","description_spa":"Sensor de presión del neumático","description_ita":"Sensore, pressione pneumatici","description_tur":"Sensör, lastik hava basıncı"}]'
我想从前面的字符串中提取字段
code
及其

请注意,在这个字符串中有两个代码(
“code”):“B1182”
“code”:“B124D”
),但这将在可能有不同代码号的数千个字符串上迭代运行


那么,如何提取该字符串中的所有代码及其值呢?

由于它是一个json字符串,您可以使用json解析器对其进行解析,例如:
jsonlite

如果没有,请安装它

install.packages("jsonlite")

它是有效的JSON,您应该使用JSON解析器。请尝试
jsonlite::fromJSON(x)$code
install.packages("jsonlite")
library(jsonlite)

out <- fromJSON(x)
out

#    code                  description                                                     faultInformations freezeFrames enhancedDtcInfos status
# 1 B1182 Tire pressure monitor module ---, TRUE, NA, TRUE, NA, TRUE, NA, TRUE, NA, TRUE, NA, TRUE, NA, TRUE         NULL             NULL ACTIVE
# 2 B124D        Sensor, tyre pressure ---, TRUE, NA, TRUE, NA, TRUE, NA, TRUE, NA, TRUE, NA, TRUE, NA, TRUE         NULL             NULL ACTIVE
#          system systemMeta.systemName systemMeta.subSystemName              description_eng                                 description_fre
# 1 MULTIFUNCTION                    NA                       NA Tire pressure monitor module Module de surveillance de la pression des pneus
# 2 MULTIFUNCTION                    NA                       NA        Sensor, tyre pressure                     Capteur, pression des pneus
#          description_ger                                   description_spa                        description_ita              description_tur
# 1 Reifendrucküberwachung Módulo de control de la presión de los neumáticos Modulo monitor di pressione pneumatico Lastik basinci izleme modülü
# 2     Sensor Reifendruck                   Sensor de presión del neumático          Sensore, pressione pneumatici  Sensör, lastik hava basinci
out[, c("code","description")]

#    code                  description
# 1 B1182 Tire pressure monitor module
# 2 B124D        Sensor, tyre pressure