_associative = assoc; _env = env;  String s = stringValue.toString(); Value val = jsonDecodeImpl(s, 0);   for (_lastOffset++; _lastOffset < s.length(); _lastOffset++) { char c = s.charAt(_lastOffset); switch (c) { case ' ': case '\n': case '\r': case '\t': continue; default: throw new Exception("Error parsing json text; null returned(1)."); } }  return val;
return (new JsonDecoder()).json_decode(env, s, assoc);
  public Value json_decode(Env env,                                              StringValue stringValue,                                              @Optional("false") boolean assoc)  {    try {      _associative = assoc;      _env = env;      String s = stringValue.toString();      Value val = jsonDecodeImpl(s, 0);      // Should now be at end of string or have only white spaces left.      for (_lastOffset++; _lastOffset < s.length(); _lastOffset++) {        char c = s.charAt(_lastOffset);        switch (c) {          case ' ':          case '\n':          case '\r':          case '\t':            continue;          default:            throw new Exception("Error parsing json text; null returned(1).");        }      }      return val;    } catch (Exception e) {      env.warning(L.l(e.toString()));      log.log(Level.FINE, e.toString(), e);      return NullValue.NULL;    }  }