646

[PERL] JSON物件的使用

“
PERL要處理JSON,可以使用perl提供的模組,一些技巧整理。
„

分享此文連結 //n.sfs.tw/16442

分享連結 [PERL] JSON物件的使用@新精讚
(文章歡迎轉載,務必尊重版權註明連結來源)
2025-11-05 00:58:40 最後編修
2024-08-24 00:22:00 By 張○○
 

自動目錄

PERL要使用json,可以使用 JSON這個模組。

use JSON;

 

一、安裝[1]

yum install cpan

cpan install JSON

二、將 hash 轉成json、json_encode

1. 使用 JSON 模組

use JSON;

my %data = (
    name => "Alice",
    age  => 25,
    skills => ["Perl", "Python", "C++"]
);

# 建立 JSON 物件
my $json = JSON->new->utf8->pretty;

# 轉成 JSON 字串
my $json_text = $json->encode(\%data);

print $json_text;

結果

{
   "age" : 25,
   "name" : "Alice",
   "skills" : [
      "Perl",
      "Python",
      "C++"
   ]
}

2. 使用 JSON::PP 這個模組

use JSON::PP;

my %hash = (
    fruit => "apple",
    color => "red"
);

my $json = JSON::PP->new->utf8->pretty->encode(\%hash);

print $json;

3. 使用 json_encode

use JSON;
print encode_json(\%hash);

 

三、將 json 轉成物件

my $decoded = decode_json($json_text);
print $decoded->{name};

 

四、傾印hash

foreach my $key (keys %hash) {
    print "$key => $hash{$key}\n";
}

或用dumper

use Data::Dumper;

my %hash = (
    name => "Alice",
    age  => 25,
    hobbies => ["music", "reading"],
);

print Dumper(\%hash);

結果

$VAR1 = {
      'hobbies' => [
           'music',
           'reading'
      ],
      'age' => 25,
      'name' => 'Alice'
   };

 

 

參考資料

[1] https://stackoverflow.com/questions/12027327/how-to-install-json-pm-perl-module-on-osx

[2] https://stackoverflow.com/questions/48304117/perl-iterate-through-a-json-string-get-key-value-object-in-one-variable

END

你可能感興趣的文章

[PERL] split 寫法 Perl 將字串分開可以用 split 這個函數,此函數可以用Regex作分隔判斷

[PERL] 02-註解、變數和常數 perl的註解、變數和常數

[PERL] 前置if和後置if (if修飾子)的差別 perl的if可以拿來作為後置修飾子使用,此外還有一個unless像是if的相反,分析他們的差異

[PERL] 11- 雜湊的範例 Perl 的幾個雜湊範例

Perl 的特殊變數:$` $' $#陣列 $1 $2 .. $10 \1 \2 .. \10 介紹Perl 的 $` $' $#array $1..$10 \1..\10這些變數

PERL一次讀取檔案所有內容的方法($/) perl可以使用slurp mode一次讀完檔案所有內容的方法及一些範例

隨機好文

[Freebsd] 使用 ADSL 撥接上網 Freebsd上要使用 ADSL 撥接上網,該如何設定?

魔球中小女孩唱的歌 The show 魔球中小女孩唱的歌 The show

[Wildfly10] 發佈war檔 deploy war file onto wildfly10

最值得學的電腦技能 什麼是最值得學的電腦技能?程式設計?美工繪圖?系統網路?還是…? 都不是!個人覺得一個最值得學的電腦技能就

此一時彼一時 我是不是易怒的人,其實我也不知道,總之我常會失控,不知道自己在幹嘛。這近生活過得浮浮的,不是很踏實,總會想太多,我甚至會

精讚::