gpt4 book ai didi

perl - 将哈希数组转换为 json

转载 作者:行者123 更新时间:2023-12-02 22:16:06 27 4
gpt4 key购买 nike

我想转换我创建的哈希数组,如下所示:

while(...)
{
...
push(@ranks, {id => $id, time => $time});
}

转为 JSON:

use JSON;
$j = new JSON;
print $j->encode_json({ranks => @ranks});

但它输出的是:

{"ranks":{"time":"3","id":"tiago"},
"HASH(0x905bf70)":{"time":"10","id":"bla"}}

如您所见,它无法写入哈希值并且没有数组...

我想输出一个如下所示的 JSON 字符串:

 {"ranks":[{"time":"3","id":"tiago"},
{"time":"40","id":"fhddhf"},
{"time":"10","id":"bla"}]}

最佳答案

所有这些都是相同的:

ranks => @ranks

'ranks', @ranks

'ranks', $ranks[0], $ranks[1], $ranks[2]

ranks => $ranks[0], $ranks[1] => $ranks[2]

因此,当您打算创建包含一个元素的哈希时,您正在创建包含两个元素的哈希。

您尝试使用数组作为哈希值,但哈希值只能是标量。然而,使用对数组的引用作为哈希值是很常见的,因为引用是标量,这正是 encode_json 所期望的。

print $j->encode_json( { ranks => @ranks } );

应该是

print $j->encode_json( { ranks => \@ranks } );

关于perl - 将哈希数组转换为 json,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14095410/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com