首页 > 编程语言 >无涯教程-JSON - Perl编程

无涯教程-JSON - Perl编程

时间:2024-01-12 10:33:10浏览次数:37  
标签:解码 无涯 json perl JSON encode Perl

本章介绍如何使用Perl编程语言编码和解码JSON对象,让我们从准备环境开始,开始使用Perl for JSON进行编程。

在使用Perl编码和解码JSON之前,需要安装JSON模块,该模块可以从CPAN获得。下载JSON-2.53.tar.gz或任何其他最新版本后,请按照以下步骤操作-

$tar xvfz JSON-2.53.tar.gz
$cd JSON-2.53
$perl Makefile.PL
$make
$make install

JSON函数

函数
encode_json 将给定的Perl数据结构转换为UTF-8编码的二进制字符串。
decode_json 解码JSON字符串。
to_json 将给定的Perl数据结构转换为json字符串。
from_json 期望一个json字符串并尝试解析它,并返回输出引用。
convert_blessed 将此函数与真值一起使用,以便Perl可以在对象的类上使用TO_JSON方法将对象转换为JSON。

编码JSON

Perl encode_json()函数将给定的Perl数据结构转换为UTF-8编码的二进制字符串。

$json_text=encode_json ($perl_scalar );
or
$json_text=JSON->new->utf8->encode($perl_scalar);

以下示例显示了使用Perl的JSON下的数组-

#!/usr/bin/perl
use JSON;

my %rec_hash=('a' => 1, 'b' => 2, 'c' => 3, 'd' => 4, 'e' => 5);
my $json=encode_json\%rec_hash;
print "$json\n";

在执行时,这将产生以下输出-

{"e":5,"c":3,"a":1,"b":2,"d":4}

以下示例显示了如何将Perl对象转换为JSON-

#!/usr/bin/perl

package Emp;
sub new {
   my $class=shift;
	
   my $self={
      name => shift,
      website  => shift,
      birthdate  => shift,
   };
	
   bless $self, $class;
   return $self;
}

sub TO_JSON { return { %{ shift() } }; }

package main;
use JSON;

my $JSON=JSON->new->utf8;
$JSON->convert_blessed(1);

$e=new Emp( "learnfk", "learnfk.com", "8/5/1974 12:20:03 pm");
$json=$JSON->encode($e);
print "$json\n";

执行时,将产生以下输出-

{"birthdate":"8/5/1974 12:20:03 pm","name":"learnfk","website":"learnfk.com"}

解码JSON

Perl encode_json()函数用于在Perl中解码JSON,此函数将从json解码的值返回到适当的Perl类型。

$perl_scalar=decode_json $json_text
or
$perl_scalar=JSON->new->utf8->decode($json_text)

以下示例显示了如何使用Perl解码JSON对象,如果您尚未在计算机上安装Data::Dumper模块,则需要在此处安装它。

#!/usr/bin/perl
use JSON;
use Data::Dumper;

$json='{"a":1,"b":2,"c":3,"d":4,"e":5}';

$text=decode_json($json);
print  Dumper($text);

在执行时,将产生以下输出-

$VAR1={
   'e' => 5,
   'c' => 3,
   'a' => 1,
   'b' => 2,
   'd' => 4
};

参考链接

https://www.learnfk.com/json/json-perl-example.html

标签:解码,无涯,json,perl,JSON,encode,Perl
From: https://blog.51cto.com/u_14033984/9211354

相关文章

  • 无涯教程-Redis - TIME 命令函数
    RedisTIME命令以两个项目列表的形式返回当前服务器时间-一个Unix时间戳和在当前秒中已经经过的微秒数。TIME-返回值包含两个元素-当前时间(以UNIX时间戳格式表示),以秒为单位。当前这一秒钟已经逝去的微秒数。TIME-语法以下是RedisTIME命令的基本语法。redi......
  • 无涯教程-Redis - SYNC 命令函数
    RedisSYNC命令用于将从站同步到主站。SYNC-返回值返回字符串内容。SYNC-语法以下是RedisSYNC命令的基本语法。redis127.0.0.1:6379>SYNCSYNC-示例redis127.0.0.1:6379>SYNCEnteringslaveoutputmode...(pressCtrl-Ctoquit)SYNCwithmaster,......
  • 无涯教程-Redis - SLOWLOG 命令函数
    RedisSlowLog是一个用于记录超过指定执行时间的查询的系统,执行时间不包括与客户端交谈,发送答复等之类的I/O操作,而是实际执行命令所需的时间。您可以使用以下两个参数配置慢速日志:slowloglog-slower-than告诉Redis执行命令的时间(以微秒为单位)要超过多少秒才能被记录下来。请......
  • 无涯教程-Redis - SAVE 命令函数
    RedisSAVE命令执行数据集的同步保存,从而以RDB文件的形式生成Redis实例内部所有数据的时间点快照。SAVE-返回值成功返回OK。SAVE-语法以下是RedisSAVE命令的基本语法。redis127.0.0.1:6379>SAVESAVE-示例redis127.0.0.1:6379>SAVEOK参考链接https://......
  • 软件测试/测试开发全日制|Pyest结合json实现数据驱动测试
    前言数据驱动测试是提高代码覆盖率和可靠性的重要方法。结合pytest和JSON(JavaScript对象表示)文件可以轻松实现数据驱动测试。和CSV文件类似,Python读取json文件也不需要借助其他的第三方库,因此我们不需要进行额外的环境安装。下面是如何使用pytest和JSON文件进行数据驱动测试的步骤......
  • 无涯教程-Redis - ROLE 命令函数
    RedisROLE是一个调试命令,它流回Redis服务器处理的每个命令,它可以帮助您了解数据库正在发生的事情,可以通过Redis-cli和telnet使用此命令,在将Redis用作数据库和分布式缓存系统时,查看服务器处理的所有请求的功能对于发现应用程序中的错误很有用。ROLE-语法以下是RedisROLE......
  • 无涯教程-Redis - MONITOR 命令函数
    RedisMONITOR是一个调试命令,可将由Redis服务器处理的每个命令流回,它可以帮助您了解数据库正在发生的事情,可以通过Redis-cli和telnet使用此命令,在将Redis用作数据库和分布式缓存系统时,查看服务器处理的所有请求的功能对于发现应用程序中的错误很有用。MONITOR-语法以下是Re......
  • 无涯教程-Redis - INFO 命令函数
    RedisINFO命令以一种易于计算机解析和易于人类阅读的格式返回有关服务器的信息和统计信息。以下是一些可选参数。server          -有关Redis服务器的一般信息clinttw         -客户端连接部分meomry        -......
  • 无涯教程-Redis - DEBUG SEGFAULT 命令函数
    RedisDEBUGSEGFAULT执行的无效内存访问使Redis崩溃,它用于在开发过程中模拟错误。DEBUGSEGFAULT-语法以下是RedisDEBUGSEGFAULT命令的基本语法。redis127.0.0.1:6379>DEBUGSEGFAULTDEBUGSEGFAULT-示例redis127.0.0.1:6379>DEBUGSEGFAULTCouldnotcon......
  • 无涯教程-Redis - DBSIZE 命令函数
    RedisDBSIZE命令用于获取所选数据库中的键(key)数。DBSIZE-语法以下是RedisDBSIZE命令的基本语法。redis127.0.0.1:6379>DBSIZEDBSIZE-示例redis127.0.0.1:6379>DBSIZE(integer)147参考链接https://www.learnfk.com/redis/server-dbsize.html......