-
Notifications
You must be signed in to change notification settings - Fork 479
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
enum support fastjson 1.x JSONField#unwrapped, for issue #2525
- Loading branch information
Showing
2 changed files
with
93 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
86 changes: 86 additions & 0 deletions
86
fastjson1-compatible/src/test/java/com/alibaba/fastjson/v2issues/Issue2525.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,86 @@ | ||
package com.alibaba.fastjson.v2issues; | ||
|
||
import com.alibaba.fastjson2.JSON; | ||
import com.alibaba.fastjson2.annotation.JSONField; | ||
import lombok.Data; | ||
import org.junit.jupiter.api.Test; | ||
|
||
import static org.junit.jupiter.api.Assertions.assertEquals; | ||
|
||
public class Issue2525 { | ||
@Test | ||
public void testMutated() { | ||
StandardGetQry standardGetQry = new StandardGetQry(); | ||
StandardBaseModel standardBaseModel = new StandardBaseModel(); | ||
standardBaseModel.setCode("2"); | ||
standardBaseModel.setCategory("NEW_CALL_STATUS"); | ||
standardGetQry.setStandardBaseModel(standardBaseModel); | ||
String jsonStr = JSON.toJSONString(standardGetQry); | ||
assertEquals("{\"standardCategory\":\"NEW_CALL_STATUS\",\"standardCode\":\"2\"}", jsonStr); | ||
|
||
StandardGetQry standardGetQry2 = JSON.parseObject(jsonStr, StandardGetQry.class); | ||
assertEquals("{\"standardCategory\":\"NEW_CALL_STATUS\",\"standardCode\":\"2\"}", JSON.toJSONString(standardGetQry2)); | ||
} | ||
|
||
@Data | ||
public static class StandardGetQry { | ||
/** | ||
* 基础数据 | ||
*/ | ||
@JSONField(unwrapped = true) | ||
private StandardBaseModel standardBaseModel; | ||
} | ||
|
||
@Data | ||
public static class StandardBaseModel { | ||
/** | ||
* 逻辑编码-标准KEY | ||
*/ | ||
@JSONField(name = "standardCode") | ||
private String code; | ||
|
||
/** | ||
* 标准类别 | ||
*/ | ||
@JSONField(name = "standardCategory") | ||
private String category; | ||
} | ||
|
||
@Test | ||
public void testMutated1() { | ||
StandardGetQry1 standardGetQry = new StandardGetQry1(); | ||
StandardBaseModel1 standardBaseModel = new StandardBaseModel1(); | ||
standardBaseModel.setCode("2"); | ||
standardBaseModel.setCategory("NEW_CALL_STATUS"); | ||
standardGetQry.setStandardBaseModel(standardBaseModel); | ||
String jsonStr = com.alibaba.fastjson.JSON.toJSONString(standardGetQry); | ||
assertEquals("{\"standardCategory\":\"NEW_CALL_STATUS\",\"standardCode\":\"2\"}", jsonStr); | ||
|
||
StandardGetQry1 standardGetQry2 = com.alibaba.fastjson.JSON.parseObject(jsonStr, StandardGetQry1.class); | ||
assertEquals("{\"standardCategory\":\"NEW_CALL_STATUS\",\"standardCode\":\"2\"}", com.alibaba.fastjson.JSON.toJSONString(standardGetQry2)); | ||
} | ||
|
||
@Data | ||
public static class StandardGetQry1 { | ||
/** | ||
* 基础数据 | ||
*/ | ||
@com.alibaba.fastjson.annotation.JSONField(unwrapped = true) | ||
private StandardBaseModel1 standardBaseModel; | ||
} | ||
|
||
@Data | ||
public static class StandardBaseModel1 { | ||
/** | ||
* 逻辑编码-标准KEY | ||
*/ | ||
@com.alibaba.fastjson.annotation.JSONField(name = "standardCode") | ||
private String code; | ||
|
||
/** | ||
* 标准类别 | ||
*/ | ||
@com.alibaba.fastjson.annotation.JSONField(name = "standardCategory") | ||
private String category; | ||
} | ||
} |