json-alexander
Advanced tools
Comparing version
{ | ||
"name": "json-alexander", | ||
"version": "0.1.2", | ||
"version": "0.1.3", | ||
"description": "Serenity Now! Forgiving JSON parser", | ||
@@ -5,0 +5,0 @@ "main": "src/index.js", |
@@ -34,2 +34,7 @@ const { isBalanced, trimQuotes, isNull } = require('./utils') | ||
} | ||
const isNumber = Number(input) | ||
if (typeof isNumber === 'number' && !isNaN(isNumber)) { | ||
return isNumber | ||
} | ||
@@ -147,7 +152,6 @@ const [err, first ] = parse(value) | ||
const [errEight, seven ] = parse(balance) | ||
error = errEight | ||
if (seven) { | ||
log('seven', seven) | ||
return seven | ||
} | ||
@@ -162,2 +166,20 @@ if (newerStill.match(/^"?\[{/) && !newerStill.match(/\}\]$/)) { | ||
} | ||
const convert = seven || newerStill | ||
if (typeof convert === 'string') { | ||
const looksLikeArray = convert.match(/^\[(.*)\]/) | ||
if (looksLikeArray && looksLikeArray[1]) { | ||
// TODO refactor for array support e,g ["x", "y"] wont work here | ||
const newVal = looksLikeArray[1].split(",").map((x) => { | ||
return parseJSON(x.trim()) | ||
}) | ||
return newVal | ||
} | ||
} | ||
if (seven) { | ||
// Parse string like array [one, two, 2, 4] | ||
log('seven', seven) | ||
return seven | ||
} | ||
@@ -164,0 +186,0 @@ throw new Error(`Unable to parse JSON\n${error}\n\n${input}`) |
14974
3.84%394
4.23%