【问题标题】:create a json string in perl在 perl 中创建一个 json 字符串
【发布时间】:2013-08-29 07:40:19
【问题描述】:

我正在尝试在 perl 中创建一个输出如下内容的 json 字符串:

{"d":{"success":false, "error":"key is required"}}

我已经用这个例子想出了如何在没有“d”的情况下做到这一点:

my %rec_hash = ('a' => 1, 'b' => 2, 'c' => 3, 'd' => 4, 'e' => 5);
my $json = encode_json \%rec_hash;
print "$json\n";

但不确定我应该如何处理额外级别

【问题讨论】:

    标签: json perl


    【解决方案1】:

    你需要的是hash reference:

    use strict;
    use warnings;
    use JSON;
    
    my $json = JSON->new;
    
    my $data_to_json = {d=>{success=>JSON::false,error=>"key is required"}};
    
    print $json->encode($data_to_json) . "\n";
    

    输出是:

    {"d":{"success":false,"error":"key is required"}}
    

    注意使用JSON::false 表示JSON 模块将正确转换为false 作为JSON 值的值。

    【讨论】:

    • 哦,这很简单,我似乎走错了路。谢谢。
    • @BluGeni - 没问题。如果您还没有,我会考虑查看perldoc perlref(在上面的答案中链接)。 Perl 最令人沮丧的特性是数据结构会自动展平,除非您使用引用(这有点像指针,除了对于嵌套数据结构和通过引用传递的解决方法没有用处)。
    • @JackManey "...有点像指针,除了 用它们射自己的脚要困难得多。)为你解决了这个问题。
    • @AaronMiller - 哈哈。很公平。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-05-04
    • 2013-07-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多