decodeStringx method

  1. @override
dynamic decodeStringx(
  1. String v,
  2. Type kind
)
override

Implementation

@override
dynamic decodeStringx(String v, Type kind) {
  final input = InputStream.fromString(v);
  final lexer = JSONLexer(input)..removeErrorListeners();
  final tokens = CommonTokenStream(lexer);
  final parser = JSONParser(tokens)..removeErrorListeners();
  final tree = parser.json();
  final visitor = _JASTVisitor(kind);
  final ref = tree.accept(visitor);
  if (visitor.errs.isNotEmpty) {
    throw Status.system.err(r: 'incorrect json: ${visitor.errs.join(', ')}');
  }
  return ref;
}