Help the DataForm deal with bad data in its JSON.

This commit is contained in:
Colin Kuskie 2009-03-15 22:57:18 +00:00
parent b1b033afa5
commit 6ba8d34574
2 changed files with 8 additions and 6 deletions

View file

@ -391,12 +391,13 @@ sub _cacheFieldConfig {
my $fieldData;
if ($jsonData && eval { $jsonData = JSON::from_json($jsonData) ; 1 }) {
# jsonData is an array in the order the fields should be
$self->{_fieldConfig} = {
map { $_->{name}, $_ } @{ $jsonData }
};
$self->{_fieldOrder} = [
map { $_->{name} } @{ $jsonData }
];
$self->{_fieldConfig} = {};
$self->{_fieldOrder} = [];
FIELD: foreach my $field (@{ $jsonData } ) {
next FIELD unless ref $field eq 'HASH';
$self->{_fieldConfig}->{$field->{name}} = $field;
push @{ $self->{_fieldOrder} }, $field->{name};
}
}
else {
$self->{_fieldConfig} = {};