コード例 #1
0
        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);
コード例 #2
0
 internal RowValueJsonSerializer(QueryStreamHeader queryStreamHeader)
 {
     this.queryStreamHeader = queryStreamHeader ?? throw new ArgumentNullException(nameof(queryStreamHeader));
 }