如何识别JSON在何处或为何无效(RJSONIO)

如何识别JSON在何处或为何无效(RJSONIO),json,r,rjsonio,Json,R,Rjsonio,我处理的数据列只是大量的JSON列。 每行值约为50000个字符 在花了一些时间尝试从fromJSON切换到JSON->dataframe,其中columns=JSON键,并且在这样做时出现了许多错误之后,我在整个列中使用了isValidJSON(),发现大约75%的JSON是“无效的” 现在,基于源代码,我完全相信这些数据实际上是直接从数据库中获取的有效JSON,因此我希望能够确定fromJSON函数在50000个字符中遇到的问题 我尝试过debug(),但它只告诉我错误发生在哪个函数调用 如

我处理的数据列只是大量的JSON列。 每行值约为50000个字符

在花了一些时间尝试从fromJSON切换到JSON->dataframe,其中columns=JSON键,并且在这样做时出现了许多错误之后,我在整个列中使用了isValidJSON(),发现大约75%的JSON是“无效的”

现在,基于源代码,我完全相信这些数据实际上是直接从数据库中获取的有效JSON,因此我希望能够确定fromJSON函数在50000个字符中遇到的问题

我尝试过debug(),但它只告诉我错误发生在哪个函数调用

如果示例行不是那么麻烦的话,我会分享它们,但这是一个健康的值组合,想象一个带有df$特性的df:

{"names":["bob","alice"],"ages":{"bob":20,"alice":21}, "id":54, "isTrue":false}... ad infinitum 
我正在尝试运行的代码:

iValid <- function(x){return(isValidJSON(I(x)))}
sapply(df$features,iValid)

 [1]  TRUE FALSE FALSE FALSE  TRUE  TRUE FALSE  TRUE  TRUE FALSE...

> fromJSON(df$features[2])
debugging in: fromJSON(df$features[2])
debug: standardGeneric("fromJSON")
Browse[2]> n
debugging in: fromJSON(content, handler, default.size, depth, allowComments, 
    asText = FALSE, data, maxChar, simplify = simplify, ..., 
    nullValue = nullValue, simplifyWithNames = simplifyWithNames, 
    encoding = encoding, stringFun = stringFun)
debug: standardGeneric("fromJSON")
Browse[3]> n
Error in fromJSON(content, handler, default.size, depth, allowComments,  : 
  invalid JSON input
> 
iValid fromJSON(df$features[2])
在中调试:fromJSON(df$features[2])
调试:standardGeneric(“fromJSON”)
浏览[2]>n
在中调试:fromJSON(内容、处理程序、default.size、深度、allowComments、,
asText=FALSE,data,maxChar,simplify=simplify。。。,
nullValue=nullValue,SimpleWithNames=SimpleWithNames,
编码=编码,stringFun=stringFun)
调试:standardGeneric(“fromJSON”)
浏览[3]>n
fromJSON中出错(内容、处理程序、default.size、深度、allowComments,:
无效的JSON输入
> 

您是否尝试过其他JSON包(
rjson
jsonlite
)?我认为默认转换函数不够复杂,无法报告错误位置。您可能最好使用类似的方法进行验证。A将非常有助于提供任何进一步的具体建议。谢谢,我将检查其中的一些包。是的,我希望将其缩小到实际问题,以便我能够解决这(希望能够复制)。