作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在编写一个 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.JSON
和 REST.JSON
而不是 Data.DBXJson
和 Data.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/
我正在编写一个 DataSnap Rest 客户端(在 Delphi 中),我希望它提供json 格式的数据传输到很多平台(如 C#、java、C++、Delphi)。我正在使用 TJsonMarsh
我是一名优秀的程序员,十分优秀!