Мне нужно отредактировать приведенный ниже конфигурационный файл с помощью Perl. Мне нужно проверить, соответствует ли cp
10000 и custcap
- 99999, если это так.Редактировать json using Perl
Если cp
не соответствует 10000, просто выйдите из файла без внесения изменений.
Насколько я понимаю, мы можем использовать Perl-файлы для открытия файла и модуль JSON для редактирования, но я не уверен в редактировании файла.
Может ли кто-нибудь помочь мне с редактированием файла?
{
"version": "15320029",
"global": {
"ap": {
"log": "info",
"hyd": {
"log": "info",
"qo": false
}
},
"cus": [
{
**"cp": "10000"**,
"ser": "XYZ",
"usesr": false,
"services": {
"acc": {
"ips": {
"usesr": false
}
}
},
"q": {
"policy": "CAP",
**"custcap": 3000000**
}
},
{
"cp": "10441",
"ser": "abc",
"usesr": false,
"services": {
"acc": {
"ips": {
"usesr": false
}
}
},
"q": {
"policy": "CAP",
"custcap": 3000000
}
}
]
}
Фрагмент кода:
#!/usr/bin/perl
use strict;
use warnings;
use JSON;
open my $fh, "<", "data.json";
my $json = <$fh>;
close $fh;
my $data = decode_json($json);
$data->{'q'}->{'custcap'}->[1] = "9999";
open my $fh, ">", "data.json";
print $fh encode_json($data);
close $fh;
Спасибо за помощь ур – user3587025
Но я только что заметил, что в конце печатается «versio n»: «15320029», которая была первой строкой файла. – user3587025
Формат файла выглядит хорошо.но порядок параметров и фигурные скобки полностью перепутаны. – user3587025