项目需要解析一个类A,这个类A已经打包成byte数组过来了。类的结构大概是这样
A:B
{
字段1;
字段2;
}B
{
字段3;
字段4;
}解析方法是
byte[] Abytes = _toBytes.ToByte(mqMsg.gpsBody);
A mqGPS = (A)_fromBytes.fromByte(Abytes , 0, typeof(A));如果我本地的A不继承B,那么解析可以成功,但是取不到B的内容。
如果我本地A继承B,解析会报错。我用javaobject解析(因为这个包是java传过来的),发现里面的结构是
{
["字段1","1的值"],
["字段2","2的值"],
["*字段3","3的值"],
["*字段4","4的值"]
}父类的字段里面多了一个星号。但是如果将B的字段命名成*字段3,这就成指针了肯定不行。请问有什么办法可以解析成类?(不要用javaobject一个字段一个字段扣的方法)类继承
A:B
{
字段1;
字段2;
}B
{
字段3;
字段4;
}解析方法是
byte[] Abytes = _toBytes.ToByte(mqMsg.gpsBody);
A mqGPS = (A)_fromBytes.fromByte(Abytes , 0, typeof(A));如果我本地的A不继承B,那么解析可以成功,但是取不到B的内容。
如果我本地A继承B,解析会报错。我用javaobject解析(因为这个包是java传过来的),发现里面的结构是
{
["字段1","1的值"],
["字段2","2的值"],
["*字段3","3的值"],
["*字段4","4的值"]
}父类的字段里面多了一个星号。但是如果将B的字段命名成*字段3,这就成指针了肯定不行。请问有什么办法可以解析成类?(不要用javaobject一个字段一个字段扣的方法)类继承
A mqGPS = (A)_fromBytes.fromByte(Abytes , 0, typeof(A));// 估计这个地方应该是循环写入值类型和引用类型,这样直接转换?
是一个一维数组,设断点看过。这个fromBytes是JavaCSConverter里面的FromByteConvertHelper类里面有个fromByte可以直接转换成javaobject
解析成javaobject之后,javaobject会把它根据原来传过来的自定义类型字段名称和值保存。namespace JavaCSConverter.javaobject
{
public class JavaObject : ClassDescriberFactory
{
public JavaObject(string javaClassName);
public JavaObject(string javaClassName, string productName); public string JavaClassName { get; }
public string ProductName { get; set; } public object this[string s] { get; set; } public ClassDescriber getClassDescriber();
}
}这是javaobject的定义,准换好了是public JavaObject(string javaClassName, string productName);这样显示的。但是这个传过来的byte数组绝绝对对是一维数组。不是说必须二维数组才能转化出二维来…………
A:B
{
字段1;
字段2;
}但是A和B中可能为null的字段特别是int和byte要定义为可为空就是int?,byte?解析的时候不要解析子类,解析父类B 就可以都取到了。