通过perl解析用JSON编码的数组

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了通过perl解析用JSON编码的数组相关的知识,希望对你有一定的参考价值。

我正在使用以下Perl代码使用JSON module解析JSON中的数组。但返回的数组长度为1,我无法正确迭代它。所以问题是我无法使用返回的数组。

#!/usr/bin/perl
use strict;

my $json_text = '[ {"name" : "abc", "text" : "text1"}, {"name" : "xyz", "text" : "text2"} ]';

use JSON;
use Data::Dumper::Names;

my @decoded_json = decode_json($json_text);
print Dumper(@decoded_json), length(@decoded_json), "
";

输出来了:

$VAR1 = [
     {
        'text' => 'text1',
        'name' => 'abc'
      },
      {
        'text' => 'text2',
        'name' => 'xyz'
      }
    ];
1
答案

decode_json function返回一个arrayref,而不是列表。您必须取消引用它才能获得列表:

my @decoded_json = @{decode_json($json_text)};

你可能想读perldoc perlreftutperldoc perlref

另一答案

关于JSON,您可能需要确保安装JSON::XS module,因为它比JSON module附带的纯Perl实现更快更稳定。 JSON模块将在可用时自动使用JSON::XS

以上是关于通过perl解析用JSON编码的数组的主要内容,如果未能解决你的问题,请参考以下文章

如何在json中编码php数组并解析成jquery

Cocoa iOS 解析 JSON 数组

快速解析双 JSON 编码数组并访问它

解析:JSON 文本没有以数组或对象开头,并且允许未设置片段的选项

php数组转换成json格式后汉字怎么就被解析成字母了啊

用 c# 创建 xml 文档并用 perl 解析它