如何在不使用json库和json解析器的情况下解析json文件

LearningCpp

以下是输入和输出详细信息

输入:这只是一个示例输入,实际输入是巨大的,仅在一行中

[{"mnemonic":"PT.IA1","ID":"000628"},  {"mnemonic":"EOR.1","ID":"000703"}]

代码:我试图通过将定界符设置为}来读取文件,以便获取每个值,但是作为单行文件,它将所有内容打印为一个,我如何通过为此设置定界符来解析此行行,拆分功能足以完成这项工作吗?

our $conf =
{
  chunk_separator   => '\{,',
}
open( FH, "Etot_Data.txt" ) or die $!;
while ( my $chunk = <FH> ){
my $sections = [ split $conf->{chunk_separator}, $chunk ]
   print "$chunk\n";
}

输出

我想从每个值中选择“ ID”,并在其前添加“ abc”。最终字符串看起来像abc.000628或abc.000703并将其保存在哈希中。除了json字符串中的ID外,不需要其他值。是否可以将json文件作为普通文件读取并对其进行操作。我没有json解析器,也没有使用它的选项

谢谢您的帮助

斯蒂维布

如果您无法安装任何外部模块,则可以将其包括在内。

JSON在脚本所在目录中创建一个目录,然后复制JSON :: PP模块的内容,并将其放入刚创建PP.pmJSON目录内的文件中然后,在脚本中,将当前工作目录添加为库目录:use lib '.';use JSON::PP;

use warnings;
use strict;

use lib '.';

use JSON::PP qw(decode_json);

my $json;

{
    local $/;
    open my $fh, '<', 'file.json' or die $!;
    $json = <$fh>;
}

my $perl = decode_json $json;

for (@$perl){
    my $id = 'abc.' . $_->{ID};
    print "$id\n";
}

输出:

abc.000628
abc.000703

如果您只需要稍作改动就可以隐藏已经创建了另一个模块的事实,则可以对模块进行一些更改,并将其直接包含在脚本本身中。

请注意,JSON::PP它位于v5.14 +中的Perl核心中。OP在评论中指出他们在5.10上。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何在不使用Java的DOM或SAX解析器的情况下解析XML?

没有第三方解析器的情况下,如何在Kotlin中解析JSON?

如何在不使用Java知道键的情况下解析JSON对象?

如何在不使用 $.each 的情况下解析 jQuery 中的特定 JSON 数据

如何在不使用 json 的情况下解析 Qt C++ 中的数据?

如何在不使用 C# 中创建类的情况下解析此 json 结果

在不使用\ n字符的情况下解析json

如何在不使用Python外部库的情况下解析Arff文件

如何添加JSON解析器库?

在没有 JsonObject 和 Array 的情况下,在 Java 中将 XML 转换为 JSON 的高效解析器

如何在不使用 JSON 和 GSON 的情况下将 HashMap 保存在 Room 数据库中?

如何使用android的Json解析器?

如何在没有键的情况下解析 JSON 文件?

如何在引号前不带反斜杠的情况下在python graphene解析器中返回json

如何在几个键相等的情况下使用Python正确解析嵌套的json

如何使用Oj SAX解析器Saj解析JSON

如何在不知道JSON值的情况下动态解析某些JSON?

在不使用 DOM 解析器的情况下将 Html 字符串解析为特定的数组

如何在不使用json_decoding集合的情况下访问嵌套的json对象

如何在不使用eval函数的情况下使用python从文件的特定行读取json数组

如何在不知道我在 Python 中查找的对象名称的情况下解析 JSON 文件?

如何在Ruby中处理JSON解析器错误

如何在没有快递的情况下获取节点 graphql 解析器的标头?

如何在不使用 csv 文件的情况下将 JSON 数据即时转换为 CSV 格式

如何在不使用 File.ReadAllLines 的情况下从 json 文件读取序列化对象?C#

如何在使用Jackson和@JSonPOJOBuilder反序列化JSON的同时获取解析器上下文

如何在不使用v-for的情况下使用Vue.js访问JSON值

如何在不使用 json() 的情况下访问 ID,同时使用 HttpClient

如何在不更改Google Apps脚本的情况下进行Json解析