解码/阅读json复杂文本文件的一部分

我开始使用Electron开发桌面应用程序。 这个应用程序将parsing一些文件和数据将显示从这些文件。 这些文件包含复杂的数据。

现在,我试图从一个复杂的文本文件中获取json数据。 这个文本文件包含一些string和json对象。 示例文件如下所示:

...strings that I'm not interested in... { "partOneA":0, "partOneB":7, .... } ...randomly strings may stand between json sections... { "partTwoA":7, "partTwoB":4, "partTwoC":4, ... } { "differentPartA":3, "differentPartB":5, "differentPartC":6, ... } ...somemoretext.... 

问题是,我怎样才能从这个复杂的文件使用JavaScript的JSON部分? 应该考虑解决scheme的性能。

另外 ,考虑到json结构是这样嵌套的:

 { "partOneA":0, "partOneB" :{ "partOneBnode1":0, "partOneBnode2":7, } } 

正则expression式parsing不适用于此问题。 现在,我试图find一个基于JavaScript的解决scheme。

只要你可以依靠{}作为开始和结束标签,你可以使用正则expression式:

 var jsonRegex = new RegExp(/({(?:(.|\n)*?(?:[^\\])){0,1}?})/g); var result = jsonRegex.exec(text); var firstMatch= result[1]; 

因此,您应该在随后的索引中获得第一个匹配项。 你可以在这里阅读文档。

你可以在http://regexr.com/这样的网站上玩正则expression式

注意

这种方法不适用于嵌套的JSON,因为您需要匹配相同数量的开始和结束括号(请参阅此答案 )。