gpt4 book ai didi

JSONMarshal : Is it possible to serialize/desrialize into/from 'plain' JSON (without metadata)?

转载 作者:行者123 更新时间:2023-12-03 15:51:59 25 4
gpt4 key购买 nike

我正在编写一个 DataSnap Rest 客户端(在 Delphi 中),我希望它提供json 格式的数据传输到很多平台(如 C#、java、C++、Delphi)。我正在使用 TJsonMarshal 序列化对象。我正在使用一些东西与此类似:

marshal := TJSONMarshal.Create(TJSONConverter.create);
jsonString := marshal.marshal(myObject).ToString;

但是当我这样做时,生成的 JSON 是这样的:

{"type":"WJsonObj.TWPedido","id":1,"fields":
{"Numero":1234,"Data":41606.7632623727,"VlrTotal":2543,
"Produtos":
[{"type":"WJsonObj.TWProdutoPedido","id":2,"fields":
{"Codigo":"P001","Descr":"Computador","Qtde":1,"VrUnitario":1500}},

...

{"type":"WJsonObj.TWProdutoPedido","id":4,"fields":
{"Codigo":"P003","Descr":"Projetor","Qtde":1,"VrUnitario":745}}
]
}
}

我想要纯 JSON,没有元数据('type''id''fields'),所以我在非 Delphi 平台上不会有额外的 json 解析。有办法吗强制 TJsonMarshal 序列化为“纯”JSON?

最佳答案

您应该使用 System.JSONREST.JSON 而不是 Data.DBXJsonData.DBXJSONReflect

var
foo, newfoo: TFoo;
s: string;

foo := TFoo.Create;
s := TJson.ObjectToJsonString(foo);

newfoo := TJson.JsonToObject<TFoo>(s);

关于JSONMarshal : Is it possible to serialize/desrialize into/from 'plain' JSON (without metadata)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30351152/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com