我正在尝试Hash::Ordered而不是Tie::IxHash,因为它似乎更快.
虽然Tie::IxHash工作正常,但我遇到了一些问题Hash::Ordered.关键是要对哈希值进行排序(在Perl中通常是随机的).
use Hash::Ordered;
use JSON::XS;
use Data::Dumper;
use strict;
use warnings;
my $json = JSON::XS->new;
my $oh = Hash::Ordered->new;
$oh->push('result' => { 'counter' => "123" }, 'number' => { 'num' => '55' });
my @r = $oh->as_list;
$json->pretty(1);
my $jsondata = $json->encode(\@r);
print Dumper $jsondata;
Run Code Online (Sandbox Code Playgroud)
结果很奇怪:
[
"result",
{
"counter" : "123"
},
"number",
{
"num" : "55"
}
]
Run Code Online (Sandbox Code Playgroud)
这是一个工作示例Tie::IxHash,我试着得到相同的结果Hash::Ordered.
use Data::Dumper;
use Tie::IxHash;
use JSON::XS; …Run Code Online (Sandbox Code Playgroud) 我不可能在Mojolicious中解析JSON.我更新了Mojolicious并在使用之前使用了代码,但不推荐使用JSON-> new.
my $json = Mojo::JSON->new;
my $user_request = $json->decode($c->req->body);
my $err = $json->error;
Run Code Online (Sandbox Code Playgroud)
从教程中,我发现已经添加了$ self-> req-> json,但所有POST都会导致错误和非工作代码.
curl -H "Content-Type: application/json" --data @body.json http://localhost:3000/checkaddress
Run Code Online (Sandbox Code Playgroud)
而我的body.json看起来像这样
{
'id': 1
}
Run Code Online (Sandbox Code Playgroud)
这是我在Mojolicious中的RESTful代码
post '/checkaddress' => sub {
my $self = shift;
my $dump = $self->dumper($self->req->json);
};
Run Code Online (Sandbox Code Playgroud)
控制台日志
[Sat Feb 20 08:23:27 2016] [debug] 200 OK (0.001688s, 592.417/s)
[Sat Feb 20 08:24:38 2016] [debug] POST "/checkaddress"
[Sat Feb 20 08:24:38 2016] [debug] Routing to a callback
[Sat Feb 20 08:24:38 2016] [debug] …Run Code Online (Sandbox Code Playgroud) Google地图是否有平铺API来接收有关建筑物的元信息?
例如:HERE Maps提供了一个瓷砖API来获取有关建筑物的信息.但数据主要仅在可用的城市.请参阅:此处是Map Tile API.
HERE Map Tile API的响应如下所示:
{ "metadata" : {
"street labels":[ { "name":"Danziger Straße", "font size":"13", "vertices": [ 38.21, -18.57, 79.17, 4.82, 88.82, 10.34, 121.50, 30.46 ] } ],
"labels":[{ "name": "111", "type":"TEXT", "bounding boxes": [ { "annotation box":[ 146.69, 139.41, 26.62, 16.75 ] } ] }],
"city center labels":[],
"buildings":[ { "id": "1609441356716643099", "sectors": [ { "info": { "bottom height": 0, "height": 6.125 }, "vertices": [ 248, 138.69, 243, 146.91, 231, 174.84, 256, …Run Code Online (Sandbox Code Playgroud)