2017-07-31 117 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 = ...行中刪除[],它應該運行得更好。