Mojo::JSON

Mojo::JSON 是一個純Perl實現的簡約的JSON解析器奕巍。

use
Mojo::JSON qw(decode_json encode_json);
my $bytes = encode_json { foo => [1, 2], bar => 'hello!' , baz => \1};
my $hash  = decode_json $bytes ;

簡介

Mojo::JSON 支持正常的Perl數據類型的止,如標量、數組引用诅福、散列引用,對于已經blessed的或者其他無法正常解析的引用會嘗試調用TO_JSON方法對他們進行字符串化氓润。Perl中的字符串和數字的區(qū)分是非常困難的,這取決于它的使用方式咖气。當一個標量有可能是字符串,也有可能是數字時崩溪,字符串具有較高的優(yōu)先級。

[1, -2, 3]     -> [1, -2, 3]
{"foo": "bar"} -> {foo => 'bar'}

一些常量名字會被Mojo::JSON常量或者本地類似的值轉換悯舟。

true  -> Mojo::JSON->true
false -> Mojo::JSON->false
null  -> undef

象標量的引用, 如果他們的值是真或者假, 會被當成布爾型。

\1 -> true
\0 -> false

有二個 Unicode 的空白字符 u2028 和 u2029 總是會轉義, 這樣會讓 JSONP 更加容易, 還有會有字符 / , 以防 xss 攻擊.

"\x{2028}\x{2029}</script>" -> "\u2028\u2029<\/script>"

函數

Mojo::JSON 中實現了以下函數抵怎,可以單獨導入奋救。

decode_json

my $value = decode_json $bytes;

將JSON解碼為Perl值尝艘,如果解碼失敗,則會退出程序背亥。

encode_json

my $bytes = encode_json {i => '? mojolicious'};

將Perl值編碼為JSON。

false

my $false = false;

因為Perl沒有原生值來表示false,所以使用虛擬實現狡汉。

true

my $true = true;

因為Perl沒有原生值來表示true,所以使用虛擬實現。

from_json

my $value = from_json $chars;

解碼未使用UTF-8編碼的JSON文本盾戴,生成Perl值。如果解碼失敗尖啡,則會退出程序。

to_json

my $chars = to_json {i => '? mojolicious'};

將Perl值編碼為JSON文本而不進行UTF-8編碼衅斩。

j

my $bytes = j [1, 2, 3];
my $bytes = j {i => '? mojolicious'};
my $value = j $bytes;

編碼Perl數據結構(可能只是數組引用或散列引用)或解碼JSON。如果返回undef表示解析失敗或是遇到了null值畏梆。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
  • 序言:七十年代末惫搏,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子筐赔,更是在濱河造成了極大的恐慌,老刑警劉巖茴丰,帶你破解...
    沈念sama閱讀 218,858評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現場離奇詭異贿肩,居然都是意外死亡,警方通過查閱死者的電腦和手機汰规,發(fā)現死者居然都...
    沈念sama閱讀 93,372評論 3 395
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來滔金,“玉大人色解,你說我怎么就攤上這事餐茵。” “怎么了忿族?”我有些...
    開封第一講書人閱讀 165,282評論 0 356
  • 文/不壞的土叔 我叫張陵,是天一觀的道長道批。 經常有香客問我,道長隆豹,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,842評論 1 295
  • 正文 為了忘掉前任,我火速辦了婚禮氮唯,結果婚禮上,老公的妹妹穿的比我還像新娘惩琉。我一直安慰自己豆励,他們只是感情好良蒸,可當我...
    茶點故事閱讀 67,857評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著嫩痰,像睡著了一般。 火紅的嫁衣襯著肌膚如雪串纺。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,679評論 1 305
  • 那天纺棺,我揣著相機與錄音,去河邊找鬼祷蝌。 笑死,一個胖子當著我的面吹牛巨朦,可吹牛的內容都是我干的米丘。 我是一名探鬼主播罪郊,決...
    沈念sama閱讀 40,406評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼悔橄!你這毒婦竟也來了?” 一聲冷哼從身側響起癣疟,我...
    開封第一講書人閱讀 39,311評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎邪蛔,沒想到半個月后,有當地人在樹林里發(fā)現了一具尸體扎狱,經...
    沈念sama閱讀 45,767評論 1 315
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 37,945評論 3 336
  • 正文 我和宋清朗相戀三年侧戴,在試婚紗的時候發(fā)現自己被綠了爽雄。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片侥蒙。...
    茶點故事閱讀 40,090評論 1 350
  • 序言:一個原本活蹦亂跳的男人離奇死亡印机,死狀恐怖,靈堂內的尸體忽然破棺而出射赛,到底是詐尸還是另有隱情,我是刑警寧澤楣责,帶...
    沈念sama閱讀 35,785評論 5 346
  • 正文 年R本政府宣布,位于F島的核電站腐魂,受9級特大地震影響,放射性物質發(fā)生泄漏蛔屹。R本人自食惡果不足惜削樊,卻給世界環(huán)境...
    茶點故事閱讀 41,420評論 3 331
  • 文/蒙蒙 一漫贞、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧迅脐,春花似錦、人聲如沸谴蔑。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,988評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽窃躲。三九已至钦睡,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間荞怒,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,101評論 1 271
  • 我被黑心中介騙來泰國打工褐桌, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人撩嚼。 一個月前我還...
    沈念sama閱讀 48,298評論 3 372
  • 正文 我出身青樓挖帘,卻偏偏與公主長得像,于是被迫代替她去往敵國和親拇舀。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 45,033評論 2 355

推薦閱讀更多精彩內容

  • Spring Cloud為開發(fā)人員提供了快速構建分布式系統中一些常見模式的工具(例如配置管理骄崩,服務發(fā)現,斷路器要拂,智...
    卡卡羅2017閱讀 134,659評論 18 139
  • 字符集和編碼簡介 在編程中常常可以見到各種字符集和編碼脱惰,包括ASCII,MBCS,Unicode等字符集。確切的說...
    蘭山小亭閱讀 8,494評論 0 13
  • 第5章 引用類型(返回首頁) 本章內容 使用對象 創(chuàng)建并操作數組 理解基本的JavaScript類型 使用基本類型...
    大學一百閱讀 3,237評論 0 4
  • 簡介 Mojo::JSON::Pointer JSON指針采盒,提供JSON數據的檢索,是RFC 6901 的一個實現...
    JSON_NULL閱讀 676評論 0 0
  • 費了好大的周折磅氨,終于如愿以償,找到他了烦租,如果不是李同學的幫助延赌,可能這輩子也難尋到他了左权。當李把他的照片發(fā)來時,還真是...
    心如玉閱讀 287評論 0 1