func parseInt(bytes []byte) (v int64, ok bool, overflow bool) {
	if len(bytes) == 0 {
		return 0, false, false
	}
	var neg bool = false
	if bytes[0] == '-' {
		neg = true
		bytes = bytes[1:]
	}
	var b int64 = 0
	for _, c := range bytes {
		if c >= '0' && c <= '9' {
			b = (10 * v) + int64(c-'0')
		} else {
			return 0, false, false
		}
		if overflow = (b < v); overflow {
			break
		}
		v = b
	}
	if overflow {
		if neg && bio.Equal(bytes, []byte(minInt64)) {
			return b, true, false
		}
		return 0, false, true
	}
	if neg {
		return -v, true, false
	} else {
		return v, true, false
	}
}
About 2x faster then strconv.ParseInt because it only supports base 10, which is enough for JSON
package jsonparser
import (
	bio "bytes"
)
const minInt64 = `9223372036854775808`