2011-06-23 146 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