如何将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"; (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |