![](/img/trans.png)
[英]How to check if key exists in swiftyJSON when json contain array with no keys
[英]How to check whether hash key contain JSON in perl?
我正在向端点url发送请求,如果成功以JSON形式从那里获取响应,但是如果失败,它将返回某些文本。
发送请求:
$data->{response} = $self->{_http}->send($myData);
因此,在执行此操作之前:
$resp = from_json($data->{response});
我想检查响应是否为json格式。我们如何在Perl中处理此问题,请在此提供帮助
您可以捕获from_json()
引发的异常,
my $resp;
my $ok = eval { $resp = from_json("{}"); 1 };
$ok or die "Not valid json";
或更简单
my $resp = eval { from_json("rrr") };
$resp // die "Not valid json";
使用JSON或JSON :: XS将JSON解码为Perl结构。
简单的例子:
use strict;
use warnings;
use JSON::XS;
my $json = '[{"Year":"2012","Quarter":"Q3","DataType":"Other 3","Environment":"STEVE","Amount":125},{"Year":"2012","Quarter":"Q4","DataType":"Other 2","Environment":"MIKE","Amount":500}]';
my $arrayref = decode_json $json;
foreach my $item( @$arrayref ) {
# fields are in $item->{Year}, $item->{Quarter}, etc.
}
您可以使用Try :: Tiny使用try / catch块
use Try::Tiny;
try {
$resp = from_json($data->{response});
} catch {
# Do something if it does not parse
warn 'Could not parse json'
};
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.