protected override RowValue <T> OnLineRed <T>(string rawJson) { //Console.WriteLine(rawJson); if (rawJson.Contains("queryId")) { queryStreamHeader = JsonSerializer.Deserialize <QueryStreamHeader>(rawJson); } else if (rawJson.Contains("_error")) { var errorResponse = JsonSerializer.Deserialize <ErrorResponse>(rawJson); if (errorResponse != null) { throw new KSqlQueryException(errorResponse.Message) { ErrorCode = errorResponse.ErrorCode } } ; } else { var result = rawJson.Substring(1, rawJson.Length - 2); var jsonSerializerOptions = GetOrCreateJsonSerializerOptions(); if (queryStreamHeader.ColumnTypes.Length == 1 && !typeof(T).IsAnonymousType()) { return(new RowValue <T>(JsonSerializer.Deserialize <T>(result, jsonSerializerOptions))); } var jsonRecord = CreateJson(result); var record = JsonSerializer.Deserialize <T>(jsonRecord, jsonSerializerOptions); return(new RowValue <T>(record)); } return(default);
internal RowValueJsonSerializer(QueryStreamHeader queryStreamHeader) { this.queryStreamHeader = queryStreamHeader ?? throw new ArgumentNullException(nameof(queryStreamHeader)); }