我想将一个键值对添加到JSON对象。以下是下面代码的Param {Data}变量的结构。
$VAR1 = {
'ArticleID' => '86',
'OldTicketData' => {
...
},
'TicketID' => '67'
};
以下是我想要执行上述操作的功能:
sub PrepareRequest {
my ( $Self, %Param ) = @_;
my %TicketInfo = $Self->{TicketObject}->ArticleGet(
ArticleID => $Param{Data}->{ArticleID},
userID => $Param{Data}->{CustomerID},
);
my %newParamData = to_json($Param{Data});
%newParamData->{'OldTicketData'}->{'Body'}=$TicketInfo{Body};
return {
Success => 1,
Data => %newParamData,
};
}
上面的函数返回' OldTicketData'。我想要关注附加到' OldTicketData' JSON对象的元素 - >(' Body',$ TicketInfo {Body})。考虑一下,$ TicketInfo {Body}返回一个字符串&some39'。
答案 0 :(得分:3)
你的代码是错误的。在将其转换为JSON之前,首先需要将密钥添加到哈希引用中。
$Param{Data}->{'OldTicketData'}->{'Body'}=$TicketInfo{Body};
my $newParamData = to_json($Param{Data});
此外,由于to_json
会返回一个标量字符串,因此您需要使用$newParamData
代替%newParamData
。
当然,您还需要修复return
。
return {
Success => 1,
Data => $newParamData,
};