[精讚] [會員登入]
258

[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

你可能感興趣的文章

Freebsd11上安裝PERL模組 freebsd11+ perl module 在freebsd上安裝module還算簡單

[PERL] 常態分配亂數產生函數 一般而言我們使用程式內建的 rand 函數取得的亂數是平均分配的,但如果需要常態分配的亂數產生器該怎麼做?

[PERL] Perl 不立即輸出的列印緩衝區問題 解決Perl 不立即輸出而是最後一次輸出的列印緩衝區問題

[PERL] 14-進階比對 #1--取回比對內容 perl的正規表達式進階比對

[PERL] 15-進階比對 #2--使用更多修飾子 perl的正規表達式進階比對

[PERL] Regex 字元集(群組) 幾個Perl在regular express會用到的特殊符號notation:字元集

隨機好文

[jQuery] select 元件的取值及給值 html中的元件select,在jquery中要如何使用?

UTF-8的網頁但IE8一片空白 UTF8編碼的網頁在Firefox 正常顯示、但IE8 就是空白,IE8編碼設定是「自動偵測」可是自動偵測到的是 big5...

分享還是炫耀? 是分享還是炫耀,取決於對方的的心態和你的心態...

[HTLM5] 表單number和range輸入類型 介紹HTML5和數字有關的輸入類型number/range 等類型

Mysql INSERT ... ON DUPLICATE KEY UPDATE 寫法,MYSQL如果存在的修改,不存在就新增的寫法 Mysql有則修改,無則新增的sql寫法