package com.alibaba.json.bvt.ref; import com.alibaba.fastjson.JSON; import junit.framework.TestCase; import java.io.Serializable; /** * Created by wenshao on 08/02/2017. */ public class RefTest_for_huanxige extends TestCase { public void test_for_ref() throws Exception { //字符串通过其它对象序列化而来,当中涉及循环引用,因此存在$ref String jsonStr="{\"displayName\":\"灰度发布\",\"id\":221," + "\"name\":\"灰度\",\"processInsId\":48,\"processInstance\":{\"$ref\":\"$" + ".lastSubProcessInstence.parentProcess\"},\"status\":1,\"success\":true," + "\"tail\":true,\"type\":\"gray\"}"; ProcessNodeInstanceDto a = JSON.parseObject(jsonStr, ProcessNodeInstanceDto.class);//status为空!!! assertNotNull(a.status); assertEquals(1, a.status.intValue()); } public static class ProcessNodeInstanceDto implements Serializable { private Long id; private Long processInsId; private String name; private String displayName; private Integer status; private String type; private Boolean success; private Boolean tail; public Long getId() { return id; } public void setId(Long id) { this.id = id; } public Long getProcessInsId() { return processInsId; } public void setProcessInsId(Long processInsId) { this.processInsId = processInsId; } public String getName() { return name; } public void setName(String name) { this.name = name; } public String getDisplayName() { return displayName; } public void setDisplayName(String displayName) { this.displayName = displayName; } public Integer getStatus() { return status; } public void setStatus(Integer status) { this.status = status; } public String getType() { return type; } public void setType(String type) { this.type = type; } public Boolean getSuccess() { return success; } public void setSuccess(Boolean success) { this.success = success; } public Boolean getTail() { return tail; } public void setTail(Boolean tail) { this.tail = tail; } } }