解析简单的JSON数组在Perl

问题描述:

可能重复:
Parse perl array解析简单的JSON数组在Perl

我试图编辑旧perl脚本我就是一个完整的初学者。 从服务器返回的请求:

$result = { 
"data": { 
    "translations": [ 
    { 
    "translatedText": "Halloween" 
    } 
    ] 
} 
} 

如何可以解析此JSON字符串抢:

$result = "Halloween" 

感谢。

+0

perl?但为什么? –

+0

没有选择 - 编辑现有的irssi脚本 – ensnare

+0

请不要转发问题。 – NullUserException

有不可数的JSON解析模块可用;最标准的是JSON

你可以采取简单的方式做这样的(没有检查这个编译):

my $translatedText = "" 
if ($result =~ /"translatedText": "(.+?)"/) 
{ 
    $translatedText = $1; 
} 

如果要分析更多的项目和不同的JSON字符串,那么你应该使用一些Perl模块(有几个可用)

+0

聪明。这会很好,但似乎并不奏效。 – ensnare

+0

我检查了这里的正则表达式:http://www.solmetra.com/scripts/regex/index.php它的工作原理...你得到什么错误? –

#!/usr/bin/perl 

use strict; 
use warnings; 
use 5.010; 
use JSON; 

my $json = '{ 
"data": { 
    "translations": [ 
    { 
    "translatedText": "Halloween" 
    } 
    ] 
} 
}'; 

my $data = decode_json($json); 

say $data->{data}{translations}[0]{translatedText};