perl - 如何将此字符串编码为 JSON?

标签 perl json

我有这个 JSON 字符串

$json_string = qq{{"error" : "User $user doesn't exist."}};

可以这么说,我是以低级方式构建的。

如何使用 JSON 模块对其进行编码?

现在我像这样编码哈希

use JSON;
my $json_string;

my $json = JSON->new;
$json = $json->utf8;

my $data;
$data->{users}  = $json->encode(\%user_result);
$data->{owners} = $json->encode(\%owner_result);
$json_string    = to_json($data);

print $cgi->header(-type => "application/json", -charset => "utf-8");
print $json_string;

最佳答案

Ratna 是对的——你不能编码一个简单的字符串(除非你把它放在一个列表或散列中)

这里有几个变体来编码你的字符串:

use strict;
use warnings;
use JSON;

my $user = "Johnny";

my $json_string = { error_message => qq{{"error" : "User $user doesn't exist."}} } ;
$json_string    = to_json($json_string);
print "$json_string\n";

#i think below is what you are looking for
$json_string = { error => qq{"User $user doesn't exist."} };
$json_string    = to_json($json_string);
print $json_string;

关于perl - 如何将此字符串编码为 JSON?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6121727/

相关文章:

windows - 如何将打开的 TCP 套接字作为标准输入和标准输出从 Perl 传递到 Windows 应用程序

Perl grep 语法

mysql - Perl DBI 模块不会引发异常

json - 在 R 中向 json 添加引号

javascript - 从 json 加载后无法在 Canvas 上渲染对象

Perl WWW::Mechanize foreach 循环跟踪链接并查看它们是否给出 401 响应

json - 组的 Firebase 数据库规则

ios - 如何解析特定的谷歌地图API网络服务JSON响应

ios - 值存储在数组中但无法访问?

perl - Perl 中 foreach 循环的默认范围是什么?