我正在尝试读取 PHP 脚本中的 perl 关联数组。为此,我首先尝试使用 JSON 模块将 perl hash 转换为 JSON。
下面是我用来将关联数组转换为 JSON 的 perl 脚本。文件 toc.pl 具有关联数组“asc_array”。
use JSON;
$j = new JSON;
require'toc.pl';
print encode_json \%asc_array;
asc_array 看起来像
%asc_array = (
"1" => 'Introduction',
"1.1" => 'Scope',
"1.2" => 'Purpose',
"2" => 'Terminology',
"2.1" => 'Definitions',
"2.2" => 'Service Primitives',
"2.3" => 'Abbreviations',
"2.4" => 'Acronyms',
);
这里我面临一个问题,那就是在将其转换为 JSON 后,关联数组元素的顺序发生了变化。
所以我的问题是即使在将其转换为 JSON 后如何保持元素的顺序?
并且,将其转换为 JSON 后,我正在 PHP 脚本中读取 JSON。
有没有更好的方法来读取 PHP 脚本中的 perl 关联数组?
最佳答案
使用JSON->canonical
对键进行排序
use JSON;
my %asc_array = (
"1" => 'Introduction',
"1.1" => 'Scope',
"1.2" => 'Purpose',
"2" => 'Terminology',
"2.1" => 'Definitions',
"2.2" => 'Service Primitives',
"2.3" => 'Abbreviations',
"2.4" => 'Acronyms',
);
print JSON->new->canonical(1)->encode( \%asc_array ), "\n";
输出:
{"1":"Introduction","1.1":"Scope","1.2":"Purpose","2":"Terminology","2.1":"Definitions","2.2":"Service Primitives","2.3":"Abbreviations","2.4":"Acronyms"}
关于php - 将perl关联数组转换为JSON并在PHP中读取,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25910702/