首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Perl到JSON,使用键/值对

Perl到JSON,使用键/值对
EN

Stack Overflow用户
提问于 2012-04-09 22:03:59
回答 3查看 3.1K关注 0票数 0

我正在尝试将一些数据从Perl输出到JSON。我可以做一个简单的输出,但我想把它组织得更好。

我有一个具有id、开始时间和结束时间的数组。这是我用来输出的代码:

代码语言:javascript
复制
print header('application/json');
my $json->{$entry} = \@array;
my $json_text = to_json($json);
print $json_text;

它返回:

代码语言:javascript
复制
{"Season":[["1","1330065300","1344038401"],["7","1298505601","1312416001"]]}

但是我想输出更多的东西,比如:

代码语言:javascript
复制
{"Season":0[{"id":1,"DateStart":1330065300,"DateEnd":1344038401},{"id":7,"DateStart":1298505601,"DateEnd":1312416001}]}

有谁可以帮助我更好地组织我的输出吗?

-更新

谢谢迈克尔。我已经试着实现了你的例子。

这是目前的代码:

代码语言:javascript
复制
foreach my $key (keys %$seasons)
    {
        $seasons->{$key} =
        [
            map
            {
                { id=>$_[0], DateStart=>$_[1], DateEnd=>$_[2] }
            } @{$seasons->{$key}}
        ];
    }

但它返回错误(引用foreach行):

代码语言:javascript
复制
Not a HASH reference at line 148

$seasons是从SQL fetchall_arrayref返回的arrayref。

有什么线索吗?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2012-04-10 04:57:15

基本上,您希望将数组的数组转换为散列的数组,您可以使用map来完成此操作。假设$data是您的结构,应该可以这样做:

代码语言:javascript
复制
for my $key (keys %$data) {
    $data->{$key} = [
        map {
            { id => $_->[0], DateStart => $_->[1], DateEnd => $_->[2] }
        } @{$data->{$key}}
    ];      
}
票数 2
EN

Stack Overflow用户

发布于 2012-04-09 22:17:31

如果您希望输出具有键/值对的对象数组,而不是数组数组,那么首先将适当的数据放入to_json中。

即hashrefs数组而不是arrayrefs数组。

你可以使用use map to transform the data

票数 2
EN

Stack Overflow用户

发布于 2012-04-09 23:38:06

每当你尝试这样的事情时,总是检查CPAN,看看是否有人以前做过,而不是试图重新发明轮子。我发现了一个名为JSON的模块,它似乎完全可以做您想要的事情。

在该页面上有一个示例,它完全符合您的要求。这里有一个快速的释义:

代码语言:javascript
复制
use JSON; # imports encode_json, decode_json, to_json and from_json.

# simple and fast interfaces (expect/generate UTF-8)
my $utf8_encoded_json_text = encode_json \@array;

没有比这更简单的了。最好的部分是,无论您的数组结构变得多么复杂,这都会起作用。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10074393

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档