我开始使用Electron开发桌面应用程序。此应用程序将解析一些文件,并将从这些文件中显示数据。这些文件包含复杂数据。
现在,我正在尝试从复杂的文本文件中获取json数据。此文本文件包含一些字符串和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部分?应考虑解决方案的性能。
Additionaly ,请考虑json结构是这样嵌套的:
{
"partOneA":0,
"partOneB" :{
"partOneBnode1":0,
"partOneBnode2":7,
}
}
使用正则表达式解析不适用于此问题。 现在,我正在尝试找到基于javascript的解决方案。
答案 0 :(得分:0)
只要您可以依赖{
和}
作为开始和结束标记,就可以使用正则表达式:
var jsonRegex = new RegExp(/({(?:(.|\n)*?(?:[^\\])){0,1}?})/g);
var result = jsonRegex.exec(text);
var firstMatch= result[1];
结果你应该在随后的索引中得到第一篇随后的匹配。您可以阅读文档here on mdn。
等网站上使用正则表达式注意强>
此方法不适用于嵌套JSON,因为您需要匹配相同数量的左括号和右括号(请参阅此answer)。