2011-06-23 103 views
3

$json->encode()to_json()有何区别?这些JSON命令有什么区别?

use JSON; 
my $json = JSON->new->allow_nonref; 
$json = $json->utf8; 

$data->{$id} = $json->encode(\%{$act->{$id}}); 
$json_string = to_json($data); 

从JSON的perldoc

$json_text = encode_json $perl_scalar 
Converts the given Perl data structure to a UTF-8 encoded, binary string. 

$json_text = to_json($perl_scalar) 
Converts the given Perl data structure to a json string. 

$json_text = $json->encode($perl_scalar) 
Converts the given Perl data structure (a simple scalar or a reference to a hash or array) 
to its JSON representation. Simple scalars will be converted into JSON string or number 
sequences, while references to arrays become JSON arrays and references to hashes become 
JSON objects. Undefined Perl values (e.g. "undef") become JSON "null" values. References 
to the integers 0 and 1 are converted into "true" and "false". 

有什么区别,当我知道用哪个?

回答

3

这只是一个功能与面向您的JSON功能的OO接口。 OO接口允许您在使用它之前配置JSON对象。

请参阅FUNCTIONAL INTERFACE in JSON