Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/perl/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Json Can';在使用“严格引用”时,不要使用字符串(“设备名称”:“iPhone Simulato…”)作为数组引用_Json_Perl - Fatal编程技术网

Json Can';在使用“严格引用”时,不要使用字符串(“设备名称”:“iPhone Simulato…”)作为数组引用

Json Can';在使用“严格引用”时,不要使用字符串(“设备名称”:“iPhone Simulato…”)作为数组引用,json,perl,Json,Perl,我有以下结构,它在变量my@json_device=getDeviceId($Session->{id})中返回 正在显示的结构如下所示 $VAR1 = [{"device_name":"device1","device_id":"device_id1"},{"device_name":"device2","device_id":"device_id2"}] 我使用下面的代码遍历数组引用并获取“device\u name”和“device\u id”值 但是我得到了下面的eror 在使用“st

我有以下结构,它在变量my@json_device=getDeviceId($Session->{id})中返回

正在显示的结构如下所示

$VAR1 = [{"device_name":"device1","device_id":"device_id1"},{"device_name":"device2","device_id":"device_id2"}]
我使用下面的代码遍历数组引用并获取“device\u name”和“device\u id”值

但是我得到了下面的eror 在使用“strict refs”时,不能将字符串(“[{”device_name:“iPhone Simulato…”)用作数组引用
谁能解释一下出了什么问题吗?

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

use JSON;

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

并按如下方式更改for循环?对于我的$arefs($aref){对于我的$href(@$arefs){warn$href->{device_-name};warn$href->{device_-uuid};}
use JSON;

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