NAME
Config::Model::Backend::Json - Read and write config as a JSON data structure
VERSION
version 2.155
SYNOPSIS
use
Config::Model ;
use
Data::Dumper ;
# define configuration tree object
my
$model
= Config::Model->new ;
$model
->create_config_class (
name
=>
"MyClass"
,
element
=> [
[
qw/foo bar/
] => {
type
=>
'leaf'
,
value_type
=>
'string'
},
baz
=> {
type
=>
'hash'
,
index_type
=>
'string'
,
cargo
=> {
type
=>
'leaf'
,
value_type
=>
'string'
,
},
},
],
rw_config
=> {
backend
=>
'Json'
,
config_dir
=>
'/tmp'
,
file
=>
'foo.json'
,
auto_create
=> 1,
}
) ;
my
$inst
=
$model
->instance(
root_class_name
=>
'MyClass'
);
my
$root
=
$inst
->config_root ;
my
$steps
= 'foo=yada bar=
"bla bla"
baz:en=hello
baz:fr=bonjour baz:hr=
"dobar dan"
';
$root
->load(
steps
=>
$steps
) ;
$inst
->write_back ;
Now, /tmp/foo.yml
contains:
{
"bar"
:
"bla bla"
,
"foo"
:
"yada"
,
"baz"
: {
"hr"
:
"dobar dan"
,
"en"
:
"hello"
,
"fr"
:
"bonjour"
}
}
DESCRIPTION
This module is used directly by Config::Model to read or write the content of a configuration tree written with Json syntax in Config::Model
configuration tree.
Note that undefined values are skipped for list element. I.e. if a list element contains ('a',undef,'b')
, the data structure only contains 'a','b'
.
CONSTRUCTOR
new
Parameters: ( node => $node_obj, name => 'Json' )
Inherited from Config::Model::Backend::Any. The constructor is called by Config::Model::BackendMgr.
read
Of all parameters passed to this read call-back, only file_path
is used. This parameter must be a Path::Tiny.
When a file is read, read
returns 1.
write
Of all parameters passed to this write call-back, only file_path
is used. This parameter must be Path::Tiny object.
write
returns 1.
AUTHOR
Dominique Dumont, (ddumont at cpan dot org)
SEE ALSO
Config::Model, Config::Model::BackendMgr, Config::Model::Backend::Any,
AUTHOR
Dominique Dumont
COPYRIGHT AND LICENSE
This software is Copyright (c) 2005-2022 by Dominique Dumont.
This is free software, licensed under:
The GNU Lesser General Public License, Version 2.1, February 1999