Bug fix: array.convert can handle string correctly

There is a bug in array.convert. array.convert should convert
string into array when given string is not a JSON format. If given
String is non-JSON format, array.convert should return an array
which contains the given string.

For example,

case 1: 1 -> [ 1 ]
case 2: '1' -> [ '1' ]
case 3: 'string' -> [ 'string' ]
case 4: "['string1', 'string2']" -> ['string1', 'string2']

To handle case 4, code uses JSON.parse to determine whether given
string is JSON format or not. However, JSON parse 1) converts
string into number when !isNaN(given_string), and 2) throws
exception when given_string is not JSON format and
isNaN(given_string).
As a result, above test cases was working like following.

case 1: 1 -> [ 1 ]
case 2: '1' -> [ 1 ]
case 3: 'string' -> undefined //returns nothing!
case 4: "['string1', 'string2']" -> ['string1', 'string2']

To solve the problem, I added 1) isNaN check before try JSON.parse
and 2) return [ given_string ] when JSON.parse throws error.