Haskell, 62 bytes
import Data.List
(%)=isInfixOf
f x=not(",0"%x||"[0"%x)&&x<"[]"
Haskell doesn’t have jagged arrays, so thisThis is a function String -> Bool
. Haskell’s lists are heterogenous, so there’s no built-in way to represent lists like [0, [0]]
.