I think saying "0 means that the column number is not available" is unfortunate. True, there is no "zeroth column", but that is much less obvious than allowing the value through: `undefined` when it is not available sounds perfectly clear to me. Omitting the key when there is no value for it also works great (but should be documented in case the parsing code depends on it). 
`0` is not the same as `undefined` (or omission).