免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12下一页
最近访问板块 发新帖
查看: 14943 | 回复: 14

perl 如何访问json对象中的元素 [复制链接]

论坛徽章:
0
发表于 2011-03-08 14:31 |显示全部楼层
大家好,我有这样一个json数据文件 file:

{"name":"china","province":[{"p_name":"shanxi","p_num":"1024"},{"p_name":"shandong","p_num":"2048"}]}

用这样一个脚本进行处理可以输出json对象:
  1. #!/usr/bin/perl -w
  2. use strict;
  3. use Data::Dumper;
  4. use JSON;

  5. my $json = new JSON;
  6. my $js;

  7. open JFILE, "file2";
  8. while(<JFILE>) {
  9.         $js .= "$_";
  10. }
  11. my $obj = $json->decode($js);
  12. print Dumper $obj
复制代码
输出内容为:
$VAR1 = {
          'name' => 'china',
          'province' => [
                          {
                            'p_name' => 'shanxi',
                            'p_num' => '1024'
                          },
                          {
                            'p_name' => 'shandong',
                            'p_num' => '2048'
                          }
                        ]
        };

我现在想要在perl脚本中输出 p_name 为 shanxi 的 这项对应的 p_num 的数值,即 1024, 不知这个可以怎么输出呢?

论坛徽章:
0
发表于 2011-03-08 14:53 |显示全部楼层
  1. my $num = ${${${$VAR1}{'province'}}[0]}{'p_num'};
  2. print $num,"\n";
复制代码

论坛徽章:
0
发表于 2011-03-08 15:15 |显示全部楼层
回复 2# Cu_fans


    多谢你的回答,但是我使用之后显示:
Global symbol "$VAR1" requires explicit package name at ./get.pl line 16.

不知道是为什么,还请多多指点哈~~

论坛徽章:
0
发表于 2011-03-08 15:19 |显示全部楼层
$VAR1前加上 my

论坛徽章:
46
15-16赛季CBA联赛之四川
日期:2018-03-27 11:59:132015年亚洲杯之沙特阿拉伯
日期:2015-04-11 17:31:45天蝎座
日期:2015-03-25 16:56:49双鱼座
日期:2015-03-25 16:56:30摩羯座
日期:2015-03-25 16:56:09巳蛇
日期:2015-03-25 16:55:30卯兔
日期:2015-03-25 16:54:29子鼠
日期:2015-03-25 16:53:59申猴
日期:2015-03-25 16:53:29寅虎
日期:2015-03-25 16:52:29羊年新春福章
日期:2015-03-25 16:51:212015亚冠之布里斯班狮吼
日期:2015-07-13 10:44:56
发表于 2011-03-08 15:22 |显示全部楼层
$obj->{province}->[0]->{p_num}

论坛徽章:
0
发表于 2011-03-08 15:39 |显示全部楼层
回复 4# Cu_fans


    加上my之后还是有错误提示:  Can't use an undefined value as a HASH reference at ./get.pl line 16,

这个应该是不能直接使用 VAR1这个变量吧。

论坛徽章:
0
发表于 2011-03-08 15:42 |显示全部楼层
回复 5# zhlong8


        多谢多谢,这个方法可以~~~

另外大家有没有一些关于 perl 处理json数据的资料或者例子呢? 借来共享下~~

论坛徽章:
0
发表于 2011-03-08 17:45 |显示全部楼层
Cu_fans 发表于 2011-03-08 14:53



    这个写法真蛋疼。。。

论坛徽章:
0
发表于 2011-03-08 18:09 |显示全部楼层
这个写法真蛋疼。。。
jin2251138 发表于 2011-03-08 17:45



   

那是你的蛋疼

论坛徽章:
1
狮子座
日期:2013-12-16 16:09:24
发表于 2011-03-09 01:06 |显示全部楼层
回复 5# zhlong8


    正解
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP