У меня есть 2 файла JSON file1.json и file2.json.Я хочу сравнить его содержимое на языке Perl
file1.json
[{
"id": 12036289,
"name": "DEFAULT ADMIN",
"email": "admin@saurabh.com",
"groups": [{
"id": 12036287,
"name": "Service Admin"
}],
"department": {
"id": 12036288,
"name": "Service Admin"
},
"adminUser": true
}, {
"id": 12046238,
"name": "saurabh",
"email":
"vbdfuyqwvbvvbduiqwvbduyvbqwuidvbq@saurabh.com",
"groups": [{
"id": 12046237,
"name": "uiwgbfuisaufusgafuuuuuuuuuuuuugsdaaaaaaiqd"
}],
"department": {
"id": 12046236,
"name": "uiwvbdusguuuuuuuuuuuuuuugsdaaaaaaiuad2"
},
"adminUser": false
}]
file2.json
[{
"id": 12046238,
"name": "saurabh",
"email":
"vbdfuyqwvbvvbduiqwvbduyvbqwuidvbq@saurabh.com",
"groups": [{
"id": 12046237,
"name": "uiwgbfuisaufusgafuuuuuuuuuuuuugsdaaaaaaiqd"
}],
"department": {
"id": 12046236,
"name": "uiwvbdusguuuuuuuuuuuuuuugsdaaaaaaiuad2"
},
"adminUser": false
}, {
"id": 12036289,
"name": "DEFAULT ADMIN",
"email": "admin@saurabh.com",
"groups": [{
"id": 12036287,
"name": "Service Admin"
}],
"adminUser": true,
"department": {
"id": 12036288,
"name": "Service Admin"
}
}]
Здесь содержимое не в порядке, но то же самое.Я попытался декодировать файл json и сравнить массивы с помощью функции cmp_deeply()
.Но я не смог этого сделать.У кого-нибудь есть какой-то подход к этой проблеме?
РЕДАКТИРОВАТЬ код, указанный в комментарии
use strict;
use warnings;
use JSON;
use Test::Deep;
my $file1;
#slurp mode
{
open(FILE,'<','file1.json');
local $/ = undef;
$file1 = <FILE>;
}
my $file2;
#slurp mode
{
open(FILE,'<','file2.json');
local $/ = undef;
$file2 = <FILE>;
}
my @array1 = @{decode_json $file1};
my @array2 = @{decode_json $file2};
print @array1;
print cmp_deeply( @array1, @array2 );