簡體   English   中英

如何在Perl 5中保留YAML文檔中的布爾類型?

[英]How to preserve boolean type from YAML document in Perl 5?

我有一個包含布爾值的YAML文檔:

---
ok: false

我想在Perl 5中加載它並保留'boolean'類型,以便稍后能夠使用true / false值將文檔正確地序列化為JSON,而不是"" / "1"

我寫的以下轉換器無法保留布爾值:

#!/usr/bin/env perl

use strict;
use warnings;

use YAML::XS qw<LoadFile>;
use JSON::MaybeXS ();

print JSON::MaybeXS->new->ascii->pretty->canonical->encode(LoadFile shift)

這是(損壞的)輸出:

{
   "fine" : ""
}

我希望在一些YAML加載器中存在一些鈎子來將true / false映射到JSON::true / JSON::false$Types::Serialiser::true / $Types::Serialiser::false

如果存在這樣的YAML模塊,它必須是一個非常模糊的模塊。 你在這里使用的那個, YAML::XS只是簡單地將YAML數據中的布爾值轉換為標准內部值PL_sv_yesPL_sv_no ,並且(據我PL_sv_no )這些值不可能被認為是特殊的。

從積極的方面來看,修補YAML::XS以使用Types::Serialiser進行布爾值並發送拉取請求似乎非常簡單。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM