2017-07-31 79 views
-3

我从MYSQL数据库获取数据,当我尝试解码时,它以JSON格式存储我收到错误格式不正确的JSON任何想法? $ VAR1是变量,\我从数据库JSON解码Perl - 格式错误的JSON字符串

 

    use JSON; 
    use Data::Dumper; 

    $VAR1 = [ '{"description":[""],"last_modified_date_min":[""]}' ]; 

    $DecodeS = decode_json($VAR1); 

    print Dumper $DecodeS; 

畸形JSON字符串,既不阵列,对象,数字,字符串或原子,在字符偏移0(前得到 “阵列(0x7f8674002ee8 ...”)

+1

你看了[文档](https://metacpan.org/pod/JSON#decode_json) ?那将是一个开始的好地方。 –

回答

2

[ ... ]创建一个rray并返回对该数组的引用,因此$VAR1包含引用。您正在将此引用传递给decode_json而不是JSON字符串,该引用恰好将字符串化为ARRAY(0x7f8674002ee8)

你想

$VAR1 = [ '{"description":[""],"last_modified_date_min":[""]}' ]; 

decode_json($VAR1->[0]) 
的JSON模块的`decode_json`功能

$VAR1 = '{"description":[""],"last_modified_date_min":[""]}'; 

decode_json($VAR1) 
1

decode_json需要字符串的JSON编码字符串,而不是一个阵列(REF)。您$VAR1 = ...行中删除[],它应该运行得更好。