c# - JsonConvert 反序列化 Avro 文件得到“解析值时遇到意外字符:O. Path '', line 0, position 0。” 错误
问题描述
我正在处理一个 C# 项目,需要从 .avro 文件中读取来自谷歌云存储桶的数据。但是,当我使用 Newtonsoft.Json 反序列化对象时,
JsonConvert.DeserializeObject<T>(Encoding.UTF8.GetString(stream.ToArray()));
它给了我错误:“解析值时遇到意外字符:O. Path '', line 0, position 0。” . 我想我的 .avro 文件肯定有一些格式问题,但是在我上传到avro 查看器之后,它完全没问题并且能够很好地转换为 json 格式。经过调试,我得到了 JsonConvert.cs 文件中的值,public static object? DeserializeObject(string value, Type? type, JsonSerializerSettings? settings)
函数,字符串值有些显示如下:
Obj avro.codec null avro.schema� "{"
type ": "
record ", "
name ": "
NetworkOptimizationPlan ", "
fields ": [{"
name ": "...
__fastavro_parsed ": true}���|O;��3_��,5�]P�� ��� �I@��8��8X@��@$��S�K
我的代码在这里:
var stream = new MemoryStream();
Uri fileLink = new Uri(gcsLocation);
var path = String.Join("", fileLink.Segments, 2, fileLink.Segments.Length - 2);
await _storageClient.DownloadObjectAsync(_bucketName, path, stream);
return JsonConvert.DeserializeObject<T>(Encoding.UTF8.GetString(stream.ToArray()));
有谁知道我的代码有什么问题或使用 c# 反序列化 avro 文件的更好方法?太感谢了!
解决方案
推荐阅读
- eclipse - 由于“无法删除‘项目’”,该项目未构建。
- c# - Getting an instance of the Serilog logger without DI
- database - 使用 Doctrine 在 Symfony 中加载未映射的表
- python-3.x - Python - Pandas:跨单独的数据框块执行基于列值的数据分组
- c# - c#解密问题得到错误PartialInputStream中的流过早结束
- c - 关于c语言中的const数组参数
- ios - 自定义标签栏 SwiftUi
- android - 在使用 firebase bom 时导入 FirebaseCrashlytics
- c# - C# 当检查用户是否在 mysql 中存在 System.NullReferenceException
- vba - 如何在 vba 例程中设置和停用单个键事件?