- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
让 protostuff 表现得像标准 Jackson 序列化器一样的最简单方法是什么?
我希望能够将对象图、列表或数组序列化为根对象,但似乎甚至没有解决方法?
这里 - o
是对象,可以是 String、SomeType、List[T] 等...
JsonIOUtil.writeTo(stream,
o,
RuntimeSchema.getSchema((Class<Object>) o.getClass()),
false,
LinkedBuffer.allocate());
最佳答案
JSON 不是 protostuff 支持的主要序列化类型。它最初是为了支持 protobuf 而创建的,并带有一些扩展(对象图)。 JSON 序列化是后来添加的,作为“受支持”的序列化格式。这就是为什么存在一些限制,这些限制在 Jackson JSON 或 GSON 等通用 JSON 支持库中不存在。
Protostuff 可以序列化/反序列化“消息”,它是具有一组键值对(字段)的结构的抽象。字段可以是原语(整数、字符串等)、其他消息或数组。但是没有办法直接序列化数组 - 你总是需要“一条消息”。
您可以像这样定义一个包装类:
class Event {
public Object data;
}
使用这个包装类,您可以将“数据”设置为任何任意类型,包括列表/数组。
更新2016-10-04:
protostuff 中的 JSON 序列化格式不支持循环引用。要序列化对象图,您必须使用 GraphIOUtil,它使用自己的二进制格式。
关于java - Protostuff 将列表写入 JSON,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39792566/
本文整理了Java中io.protostuff.WireFormat类的一些代码示例,展示了WireFormat类的具体用法。这些代码示例主要来源于Github/Stackoverflow/Maven
本文整理了Java中io.protostuff.YamlIOUtil类的一些代码示例,展示了YamlIOUtil类的具体用法。这些代码示例主要来源于Github/Stackoverflow/Maven
我有一个 Java 类层次结构,我想使用 protostuff 对其进行序列化和反序列化。 这些类如下(只是一个玩具示例) class Wrapper { public List beings
本文整理了Java中com.dyuproject.protostuff.YamlOutput类的一些代码示例,展示了YamlOutput类的具体用法。这些代码示例主要来源于Github/Stackov
我正在研究一个类的不同版本(来自序列化二进制表示)之间的向后兼容性框架。 我坚持的一件事是如何在运行时用字段类的不同版本替换类中使用的字段。 如果所讨论的类是父对象 (Java - how to lo
我正在尝试使用protostuff来序列化反序列化json,但是当我序列化对象时,数组的大小放在前面 {"id":1,"price":1.2,"name":"alex","tags":{"a":3,"
让 protostuff 表现得像标准 Jackson 序列化器一样的最简单方法是什么? 我希望能够将对象图、列表或数组序列化为根对象,但似乎甚至没有解决方法? 这里 - o 是对象,可以是 Stri
我正在使用带有循环引用和泛型的 protostuff 二进制文件。作为一个非常简单的场景,我有以下类: public class A { private String name;
本文整理了Java中io.protostuff.WireFormat.makeTag()方法的一些代码示例,展示了WireFormat.makeTag()的具体用法。这些代码示例主要来源于Github
本文整理了Java中io.protostuff.WireFormat.getTagWireType()方法的一些代码示例,展示了WireFormat.getTagWireType()的具体用法。这些代
本文整理了Java中io.protostuff.WireFormat.getTagFieldNumber()方法的一些代码示例,展示了WireFormat.getTagFieldNumber()的具体
本文整理了Java中io.protostuff.YamlIOUtil.writeTo()方法的一些代码示例,展示了YamlIOUtil.writeTo()的具体用法。这些代码示例主要来源于Github
Protostuff 代码生成器生成的类是否与 Protobuf 创建的类兼容? 我尝试(反)序列化一些简单的消息并得到几个异常: 原型(prototype)文件 (WrapperClass.prot
本文整理了Java中com.dyuproject.protostuff.YamlOutput.()方法的一些代码示例,展示了YamlOutput.()的具体用法。这些代码示例主要来源于Github/S
本文整理了Java中com.dyuproject.protostuff.YamlOutput.writeTag()方法的一些代码示例,展示了YamlOutput.writeTag()的具体用法。这些代
我正在尝试学习如何使用 Protostuff。我有一个使用 protostuff 1.0.7 的示例。在此示例中使用了 RuntimeSchema 类。 当我尝试使用当前版本的 protostuff
我使用 protostuff-runtime 来序列化对象图。其中一些对象引用了 Guava 不可变集合,例如 ImmutableList 和 ImmutableSet。 Protostuff 无法开
由于 protostuff-maven-plugin 在 Mac 上正常工作时未生成正确的输出路径,因此我收到错误“文件名、目录名或卷标语法不正确”。详情如下: 由以下原因引起的错误:java.io.
我以最基本的方式使用 Protostuff RuntimeSchema : Schema schema = RuntimeSchema.createFrom(Bean.class); 我会将结果 by
我正在 Windows 系统和 Android 设备上基于 .Net 的程序之间进行通信。在 .Net 端,我使用 Marc Gravell 出色的 protobuf-net 程序,在 Android
我是一名优秀的程序员,十分优秀!