You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Perl使用LWP::UserAgent请求API后如何解析响应JSON取字段值

问题根因

  • $request->content返回的是原始JSON字符串,不是Perl哈希结构,无法直接通过键名取值
  • Perl字符串插值不会自动执行方法调用与解引用操作,因此你写的取值语句只会输出对象拼接的文本,不会返回实际值

解决方法

引入JSON解析模块,将JSON字符串解码为Perl哈希引用后再读取对应键值即可,无需额外调用HTTP::Response模块处理,$ua->get返回的本身就是HTTP::Response对象。

修正后完整代码

#!/usr/bin/perl
use strict;
use warnings;
use LWP::UserAgent;
use JSON;
use Data::Dumper;

my $ua = LWP::UserAgent->new;
my $response = $ua->get("http://example.com/foo", Authorization => "Bearer abc123", Accept => "application/json" );

# 先判断请求是否成功
if ($response->is_success) {
    # 把JSON字符串解码为Perl哈希引用
    my $result_hash = decode_json($response->content);
    # 读取对应键值
    print "API Version = " . $result_hash->{'apiVersion'} . " \n";
} else {
    print "请求失败: " . $response->status_line . "\n";
}

内容的提问来源于stack exchange,提问作者JeremyCanfield

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.30 04:15:01