不能使用字符串(" [{" device_name":" iPhone Simulato" ...)作为ARRAY参考,而严格参考"正在使用

时间:2015-11-05 10:19:10

标签: json perl

我有以下结构,它在变量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参考,而严格参考"正在使用 任何人都可以向我解释出现了什么问题?

1 个答案:

答案 0 :(得分:7)

似乎getDeviceId不会返回Perl数据而是返回JSON字符串。你必须转换它:

use JSON;

# ..
my $json_device = getDeviceId($Session->{id});
my $aref        = decode_json($json_device);