问题:尝试使用Perl脚本将json缓冲区数据写入文件。
场景:
我将在Postgres中获得二进制数据。
因此,为了重新创建场景,我将“怪胎”转换为二进制格式并存储在Postgres中。
Input : geeks
Output : 1100111 1100101 1100101 1101011 1110011
Nodejs从postgres查询二进制数据,并以json格式发送如下响应。
[
{
"lo_get": {
"type": "Buffer",
"data": [
49,
49,
48,
48,
49,
49,
49,
32,
49,
49,
48,
48,
49,
48,
49,
32,
49,
49,
48,
48,
49,
48,
49,
32,
49,
49,
48,
49,
48,
49,
49,
32,
49,
49,
49,
48,
48,
49,
49
]
}
}
]
以下是我编写的Perl脚本,但是我不确定如何将原始字符串(即“怪胎”)写入文件..
$req = HTTP::Request->new(GET => $url);
$res = $ua->request($req);
$response = decode_json($res->content);
if ($res->is_success & @$response) {
$string = @$response[0]->{Output}->{data};
print ($string);
}
open my $fh, ">", "data_out.json";
print $fh encode_json($string);
close $fh;
不知道如何获取以“怪胎”为内容的文件。
my $binary =
pack 'C*',
@{ $response->[0]{lo_get}{data} };
say $binary; # '1100111 1100101 1100101 1101011 1110011
my $bytes =
pack 'C*',
map { oct("0b$_") }
split(' ', $binary);
say $bytes; # geeks
转换为二进制
这是没有道理的。除了在访问数据库时将字节转换为二进制表示形式或将其转换回二进制形式时所做的不必要的额外工作外,它还能将所需的存储空间乘以9!
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句