<%once> use JSON::XS; use Data::Recursive::Encode; <%args> $name => undef $SETS => undef $object => undef <%init> return undef unless ref($SETS); return undef unless $name; return undef unless $SETS->{$name}; my ($prop) = grep { $_->{attr} eq $name } $object->structure; my $class = $object->class; my $is_extra = scalar (grep { ref $_ && $_->{attr} eq $name } $class->class_table->required_properties) ? 0 : 1; my $result; if ( $is_extra && !$prop->{serialize} ) { eval { $result = Data::Recursive::Encode->encode_utf8( JSON::XS->new->utf8->decode($SETS->{$name}) ) }; } else { $result = $SETS->{$name}; } warn "\nJSON\n"; warn Dumper $result; return $result;