草庐IT

marshaling

全部标签

c# - 如何编码(marshal)包含可变大小字符串的结构?

我通过TCP连接从客户端向我的服务器发送数据包(MemoryStream),在服务器端我想通过使用Marshal重新创建原始对象.我正在使用以下代码将内容编码到数据包中:publicvoidWrite(Tvalue)whereT:struct{byte[]buffer=newbyte[Marshal.SizeOf(typeof(T))];//Fillthebufferwithourstuffplease!fixed(byte*b=buffer)Marshal.StructureToPtr(value,newIntPtr(b),false);//AndwriteittotheMemory

java - JAXB Fragment Marshal 不带命名空间

我正在使用JAXB_FRAGMENT属性让我的编码器在工作集级别进行编码。问题是,当我编码时,它每次都会为WorkSet元素提供xmlns属性。有没有办法进行编码,使其不附加xmlns属性?这是我的XML的样子。...........这是我用来创建上面的代码:FileOutputStreamfos=newFileOutputStream("import.xml");XMLStreamWriterwriter=XMLOutputFactory.newFactory().createXMLStreamWriter(fos);JAXBContextjc=JAXBContext.newInst

java - 使用 Spring MVC 在 Java 中编码(marshal) JSON 和泛型

我正在尝试将一个JSON对象编码到一个包装类中,该包装类包含一个通用对象以及有关该对象签名的其他信息。publicclassSignable{privateTobject;privateStringsignature;publicclassSignable(){generateSignature();}/*Gettersandsetters*/}只要我用已经创建的对象构造它,包装类就可以正常工作,并且它能够生成所需的json@RequestMapping(value="/test/json/return",method=RequestMethod.GET)public@Response

c# - Marshal.AllocHGlobal VS Marshal.AllocCoTaskMem,Marshal.SizeOf VS sizeof()

我有以下结构:[StructLayout(LayoutKind.Sequential,CharSet=CharSet.Auto)]publicstructWAVEHDR{internalIntPtrlpData;//pointertolockeddatabufferinternaluintdwBufferLength;//lengthofdatabufferinternaluintdwBytesRecorded;//usedforinputonlyinternalIntPtrdwUser;//forclient'suseinternaluintdwFlags;//assortedfla

c# - Marshal.AllocHGlobal VS Marshal.AllocCoTaskMem,Marshal.SizeOf VS sizeof()

我有以下结构:[StructLayout(LayoutKind.Sequential,CharSet=CharSet.Auto)]publicstructWAVEHDR{internalIntPtrlpData;//pointertolockeddatabufferinternaluintdwBufferLength;//lengthofdatabufferinternaluintdwBytesRecorded;//usedforinputonlyinternalIntPtrdwUser;//forclient'suseinternaluintdwFlags;//assortedfla

json.Marshal 自定义类型为 base64 字符串

我有一个自定义类型(Hash[64]byte),我正在尝试实现MarshalJSON/UnmarshalJSON以使其在JSON中编码/解码为base64字符串。相反,我在开头收到有关无效字符的错误。packagemainimport("encoding/base64""encoding/json""fmt")typeHash[64]bytefuncFromString(datastring)(Hash,error){decoded,err:=base64.StdEncoding.DecodeString(string(data))iferr!=nil{returnHash{},err

json.Marshal 自定义类型为 base64 字符串

我有一个自定义类型(Hash[64]byte),我正在尝试实现MarshalJSON/UnmarshalJSON以使其在JSON中编码/解码为base64字符串。相反,我在开头收到有关无效字符的错误。packagemainimport("encoding/base64""encoding/json""fmt")typeHash[64]bytefuncFromString(datastring)(Hash,error){decoded,err:=base64.StdEncoding.DecodeString(string(data))iferr!=nil{returnHash{},err

json - 在 unmarshal 期间包含一个字段,但在 marshal 期间不包含一个字段

我想在注册过程中包含password字段,但不想在请求用户个人资料详细信息时透露它。packagemainimport("encoding/json""fmt")typeUserstruct{UserNamestring`json:"username"`Passwordstring`json:"-"`}funcmain(){data:=[]byte(`{"username":"username","password":"password"}`)user:=User{}_=json.Unmarshal(data,&user)user.Password="password"user.Use

json - 在 unmarshal 期间包含一个字段,但在 marshal 期间不包含一个字段

我想在注册过程中包含password字段,但不想在请求用户个人资料详细信息时透露它。packagemainimport("encoding/json""fmt")typeUserstruct{UserNamestring`json:"username"`Passwordstring`json:"-"`}funcmain(){data:=[]byte(`{"username":"username","password":"password"}`)user:=User{}_=json.Unmarshal(data,&user)user.Password="password"user.Use

如果 xml.Marshal 为空,则忽略结构

我需要输出一个XML文件,我构建了一些表示它的结构作为一个基本示例,如下所示:typeParentstruct{XMLNamexml.Name`xml:"parent"`Namestring`xml:"name,omitempty"`Ageint64`xml:"age,omitempty"`ChildChild`xml:"child,omitempty`}typeChildstruct{XMLNamexml.Name`xml:"child,omitempty"`Namestring`xml:"name,omitempty"`Genderstring`xml:"gender,omitem