我有以下结构,它在变量my @json_device = getDeviceId($ Session-> {id})中返回;
正在显示的结构如下
$VAR1 = [{"device_name":"device1","device_id":"device_id1"},{"device_name":"device2","device_id":"device_id2"}]
我正在使用以下代码迭代数组引用并获取" device_name"和" device_id"值
for my $aref (@json_device){
for my $href (@$aref){
warn $href->{device_name};
warn $href->{device_uuid};
}
}
但是我得到了以下的恐怖 不能使用字符串(" [{" device_name":" iPhone Simulato" ...)作为ARRAY参考,而严格参考"正在使用 任何人都可以向我解释出现了什么问题?
答案 0 :(得分:7)
似乎getDeviceId
不会返回Perl数据而是返回JSON字符串。你必须转换它:
use JSON;
# ..
my $json_device = getDeviceId($Session->{id});
my $aref = decode_json($json_device);