Perl json 带空格的键
Perl json keys with spaces
我如何解析 perl json 键中有空格的对象
{
"abc" : [
"lmn" : {
"Ab Cd" : "Xy Zw",
"Ef Gh" : "Pq Rs",
}
]
}
根据定义,使用 JSON 解析器解析 JSON。 CPAN 上存在多个 JSON 个解析器,包括 Cpanel::JSON::XS。它可以毫无问题地处理其中包含空格的键,每个其他 JSON 解析器也应该如此。
请注意,您拥有的不是 JSON。自从您询问 JSON.
以来,我假设这些错误是拼写错误
键中的空格对任何 JSON 解析器都没有任何问题。
但是,您的 JSON 中有两个问题会导致任何解析器出现问题。其他人注意到 "Pq Rs"
后的额外逗号,但您还有一个包含 key/value 对(具有键 "lnm"
)的数组,该数组需要位于对象内。
最初,我只是删除了逗号和 运行 这段代码:
#!/usr/bin/perl
use strict;
use warnings;
use feature 'say';
use Data::Dumper;
use JSON;
my $json = '{
"abc" : [
"lmn" : {
"Ab Cd" : "Xy Zw",
"Ef Gh" : "Pq Rs"
}
]
}';
my $data = decode_json($json);
say Dumper $data;
这给出了一个错误:
, or ] expected while parsing array, at character offset 28 (before ": {\n "Ab C...")
我通过在 lnm
对象周围插入 { ... }
来修复它。
#!/usr/bin/perl
use strict;
use warnings;
use feature 'say';
use Data::Dumper;
use JSON;
my $json = '{
"abc" : [ {
"lmn" : {
"Ab Cd" : "Xy Zw",
"Ef Gh" : "Pq Rs"
}
} ]
}';
my $data = decode_json($json);
say Dumper $data;
然后我得到了这个输出:
$VAR1 = {
'abc' => [
{
'lmn' => {
'Ab Cd' => 'Xy Zw',
'Ef Gh' => 'Pq Rs'
}
}
]
};
我想这就是您所期待的。
我如何解析 perl json 键中有空格的对象
{
"abc" : [
"lmn" : {
"Ab Cd" : "Xy Zw",
"Ef Gh" : "Pq Rs",
}
]
}
根据定义,使用 JSON 解析器解析 JSON。 CPAN 上存在多个 JSON 个解析器,包括 Cpanel::JSON::XS。它可以毫无问题地处理其中包含空格的键,每个其他 JSON 解析器也应该如此。
请注意,您拥有的不是 JSON。自从您询问 JSON.
以来,我假设这些错误是拼写错误键中的空格对任何 JSON 解析器都没有任何问题。
但是,您的 JSON 中有两个问题会导致任何解析器出现问题。其他人注意到 "Pq Rs"
后的额外逗号,但您还有一个包含 key/value 对(具有键 "lnm"
)的数组,该数组需要位于对象内。
最初,我只是删除了逗号和 运行 这段代码:
#!/usr/bin/perl
use strict;
use warnings;
use feature 'say';
use Data::Dumper;
use JSON;
my $json = '{
"abc" : [
"lmn" : {
"Ab Cd" : "Xy Zw",
"Ef Gh" : "Pq Rs"
}
]
}';
my $data = decode_json($json);
say Dumper $data;
这给出了一个错误:
, or ] expected while parsing array, at character offset 28 (before ": {\n "Ab C...")
我通过在 lnm
对象周围插入 { ... }
来修复它。
#!/usr/bin/perl
use strict;
use warnings;
use feature 'say';
use Data::Dumper;
use JSON;
my $json = '{
"abc" : [ {
"lmn" : {
"Ab Cd" : "Xy Zw",
"Ef Gh" : "Pq Rs"
}
} ]
}';
my $data = decode_json($json);
say Dumper $data;
然后我得到了这个输出:
$VAR1 = {
'abc' => [
{
'lmn' => {
'Ab Cd' => 'Xy Zw',
'Ef Gh' => 'Pq Rs'
}
}
]
};
我想这就是您所期待的。