我从Java第三方系统收到一些JSON,其中包含JSON格式的Avro架构。一个例子如下:
{"type":"record", "name":"AvroRecord", "namespace":"Parent.Namespace", "fields": [{"name":"AvroField", "type":"bytes", "default":"\u00FF"}]}
我解析这个JSON来做一些C#代码生成。结果如下:
public partial class AvroRecord
{
[AvroField(Name = "AvroField", Type = "bytes", DefaultValueText = "ÿ")]
public byte[] AvroField { get; set; }
public AvroRecord() { this.AvroField = new byte[] { 255 }; }
}
最终,从架构的C#表示,我需要推断支持原始架构。一旦我得到推断的模式,它将被发送到原始系统进行比较。这就是为什么我想保留默认值的原始字符串值,因为我不知道是否:
{"type":"record", "name":"AvroRecord", "namespace":"Parent.Namespace", "fields": [{"name":"AvroField", "type":"bytes", "default":"\u00FF"}]}
和
{"type":"record", "name":"AvroRecord", "namespace":"Parent.Namespace", "fields": [{"name":"AvroField", "type":"bytes", "default":"ÿ"}]}
会导致完全匹配,否则会出现问题。
我使用JSON.NET将原始模式转换为字符串,转换为可以使用的更有用的东西:
JToken token = JToken.Parse(schema);
在JSON.NET或任何其他JSON解析库中是否有办法控制解析并复制值而不进行解析?基本上,一种避免“\ u00FF”成为“ÿ”的方法