json - 如何在不使用正则表达式或拆分的情况下将字符串转换为 perl 中的哈希
问题描述
我有一个我无法控制的函数,它返回一个实际上是哈希的字符串。它看起来像下面这样:
{"offset":0,"limit":500,"count":0,"virtual_machines":[]}
我需要检查计数是否大于 0。因为输出是字符串而不是哈希,所以我试图拆分字符串并从中获取输出。
相同的片段如下:
my $output = '{"offset":0,"limit":500,"count":0,"virtual_machines":[]}';
$output =~ s/ +/ /g;
my @words = split /[:,"\s\/]+/, $output;
print Dumper(@words);
输出是:
$VAR1 = '{';
$VAR2 = 'offset';
$VAR3 = '0';
$VAR4 = 'limit';
$VAR5 = '500';
$VAR6 = 'count';
$VAR7 = '0';
$VAR8 = 'virtual_machines';
$VAR9 = '[]}';
现在,我可以获得价值 $VAR7 并获得计数。
有没有办法将字符串转换为哈希,然后使用键来获取值,而不是使用正则表达式和拆分。有人可以帮我吗!
解决方案
该字符串采用 JSON 格式。我只是做
use strict;
use warnings;
use JSON::PP qw(decode_json);
my $output = '{"offset":0,"limit":500,"count":0,"virtual_machines":[]}';
my $data = decode_json $output;
print $data->{count}, "\n";
推荐阅读
- spring-boot - [com.example.blog.SnapEngChatRequest] 和内容类型 [application/x-www-form-urlencoded] 没有 HttpMessageConverter
- sql-server - SQL Select From Where 不同的列必须相等
- javascript - Moment.js,将 UTC 日期更改为给定的 UTC 偏移量
- python - 如何在具有不同 django 类的两个字段之间建立关系?
- python-3.x - 使 Gensim FAST_VERSION 在 Windows 10 (Python 3.6) 上工作
- java - Spring Kafka错误处理程序如何避免死循环
- ios - UITextView 验证问题:iOS
- c# - 向故障实体添加自定义属性
- android - MediaDrmCallback 函数的打印值
- actions-on-google - 向 Google Home 发送自定义音频响应以在 google-app 上执行操作,并使用技能包应用程序向 Alexa 发送