# study-zeebe **Repository Path**: mccken/study-zeebe ## Basic Information - **Project Name**: study-zeebe - **Description**: zeebe知识点学习。各种流程组件的使用 - **Primary Language**: Java - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 2 - **Created**: 2021-03-30 - **Last Updated**: 2022-05-25 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Demo-zeebe Zeebe工作流引擎的demo代码 # JsonObject的注意事项 1. 使用vert.x的JsonObject对象不能够直接存放自定义的对象,除非将该对象转化为json格式字符串和对象。 ``` 2.使用vert.x的Json对象,通过encode方法,可以将对象转化为json字符串。 使用vert.x的Json对象的decode方法时,vert.x的JsonObject转化失败: 原因是: decode()方法将JsonObject中的key值,当作了属性。而JsonObject中只有map属性 代码举例: JsonObject data=new JsonObject(); data.put("hello","world"); String str=Json.encode(data); //类比Object反编码,这里使用JsonObject代替 JsonObject j= Json.decodeValue(str,JsonObject.class); 执行结果: //Exception in thread "main" io.vertx.core.json.DecodeException: Failed to decode: Unrecognized field "hello" (class io.vertx.core.json.JsonObject), not marked as ignorable (one known property: "map"]) 注意:如果某个对象中有JsonObject类型的属性,使用Json.decode()反编码时就会报相同的错误 ``` 1. 使用alibaba的fastJson,不能将vert.x的JsonObject的进行反编码。得到的值是一个{}值 ``` 代码举例: //JsonObject对象是vert.x中的类 JsonObject data=new JsonObject(); data.put("hello","world"); System.out.println(data); //JSON对象是alibaba的包中的类 JsonObject person=JSON.parseObject(data.encode(),JsonObject.class); System.out.println(person); 执行结果: {"hello":"world"} {} ``` 1. 通过编写自定义的反序列化类,成功将vert.x的JsonObject反序列化成功。 ``` 代码举例: //自定义反序列化类 public class MyDeserialize extends JsonDeserializer { @Override public Object deserialize(JsonParser jsonParser, DeserializationContext deserializationContext) throws IOException, JsonProcessingException { return JsonObject.mapFrom(deserializationContext.readValue(jsonParser,Object.class)); } } //实体类中的JsonObject,需要添加注解 @JsonDeserialize(using= MyDeserialize.class) JsonObject data; ```