加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

如何将perl对象转换为json字符串

发布时间:2020-12-15 21:46:53 所属栏目:大数据 来源:网络整理
导读:我花了很多时间将perl对象转换为 JSON String.但我仍然找不到.我用的是JSYNC.但我看到它有一些问题.然后我在perl中使用JSON模块. 这是我的代码. my $accountData = AccountsData -new();$accountData-userAccountsDetail(@userAccData);$accountData-creditC
我花了很多时间将perl对象转换为 JSON String.但我仍然找不到.我用的是JSYNC.但我看到它有一些问题.然后我在perl中使用JSON模块.
这是我的代码.
my $accountData = AccountsData ->new();
$accountData->userAccountsDetail(@userAccData);
$accountData->creditCardDetail(@userCrData);
my $json = to_json($accountData,{allow_blessed=>1,convert_blessed=>1});
print $json."n";

当我运行代码时,它打印null.我有没有做错?

解决方法

第一版:
use JSON::XS;
use Data::Structure::Util qw/unbless/;


sub serialize {
  my $obj = shift;
  my $class = ref $obj;
  unbless $obj;
  my $rslt = encode_json($obj);
  bless $obj,$class;
  return $rslt;
}

sub deserialize {
  my ($json,$class) = @_;
  my $obj = decode_json($json);
  return bless($obj,$class);
}

第二版:

package SerializablePoint;

use strict;
use warnings;
use base 'Point';

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

1;

package main;

use strict;
use warnings;
use SerializablePoint;
use JSON::XS;

my $point = SerializablePoint->new(10,20);

my $json = JSON::XS->new->convert_blessed->encode($point);
print "$jsonn";
print "point: x = ".$point->get_x().",y = ".$point->get_y()."n";

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读