私は巨大なjsonファイル〜1000 + linesを持っています。私は2つのことを実装したかったのです。私はこの使用してdecode_jsonをした"s"
"1861"
としてJSONファイルでjsonのperlによる解析
1)、"Id" : "232799"
ならば、割り当てます。それは期待どおりに動作します。
2)version
に1を加算し、ファイルを特定のディレクトリに保存します。私はこれがループで起こることを望みます。
jsonオブジェクト/ json配列を解析するためにdecode_jsonを使用する必要があります。 しかし、バージョンはファイルの最初の行です。デコードが使用できるかどうかはわかりません。何か提案がありますか?
{
"version": "16300173",
"con": {
"s1": {
"key": false,
"global": {
"cu": [
{
"Id": "232799",
"s": 1861,
"Sps": "xx",
"cId": "xyzzde",
"pat": "-123456789",
"Config": true,
"auth": [
{
"Type": "5",
"dir": "in"
},
{
"Type": "6",
"dir": "out"
}
],
スクリプト:
#!/usr/bin/perl
use strict;
use warnings;
use JSON;
my $json;
{
open my $fh, "<", "https://stackoverflow.com/a/etc/cm/nw/st/cfg.json"
or die("Can't open file \"https://stackoverflow.com/a/etc/cm/nw/st/cfg.json\": $!\n");
local $/;
$json = <$fh>;
}
my $data = decode_json($json);
for my $customers (@{ $data->{global}{cu} }) {
$customers->{s} = 1861
if $customers->{id} ==237299;
}
$json = JSON->new->utf8->pretty->encode($data);
{
open my $fh, ">" ,"https://stackoverflow.com/a/etc/cm/nw/st/cfg.json"
or die("Can't open file \"https://stackoverflow.com/a/etc/cm/nw/st/cfg.json\": $!\n");
local $/;
print $fh $json;
}
'$データ - >を動作するように見える代わりに
Id
の
id
を持っています{global} {cu} 'は' $ data - > {con} {s1} {global} {cu} 'であり、バージョンは' $ data - > {versio n} '。 – choroba@chorobaバージョン番号を増やす方法を教えていただけますか? – virat
'$ data - > {version} ++;'それを行うべきです。 – choroba