package com.alibaba.json.bvt.bug; import java.io.Serializable; import java.util.ArrayList; import java.util.List; import junit.framework.TestCase; import org.junit.Assert; import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.annotation.JSONField; public class Bug_for_uin57 extends TestCase { public void test_multiArray() throws Exception { String jsonString = "{\"block\":{\"boxList\":[{\"dx\":1,\"dy\":1},{\"dx\":0,\"dy\":0},{\"dx\":0,\"dy\":2},{\"dx\":2,\"dy\":0},{\"dx\":2,\"dy\":2}],\"centerBox\":{\"dx\":1,\"dy\":1},\"offsetX\":0,\"offsetY\":0},\"boxs\":[[null,null,null,null,null,null,null,null,null,null,null,null],[null,null,null,null,null,null,null,null,null,null,null,null],[null,null,null,null,null,null,null,null,null,null,null,null],[null,null,null,null,null,null,null,null,null,null,null,null],[null,null,null,null,null,null,null,null,null,null,null,null],[null,null,null,null,null,null,null,null,null,null,null,null],[null,null,null,null,null,null,null,null,null,null,null,null],[null,null,null,null,null,null,null,null,null,null,null,null],[null,null,null,null,null,null,null,null,null,null,null,null],[null,null,null,null,null,null,null,null,null,null,null,null],[null,null,null,null,null,null,null,null,null,null,null,null],[null,null,null,null,null,null,null,null,null,null,null,null],[null,null,null,null,null,null,null,null,null,null,null,null],[null,null,null,null,null,null,null,null,null,null,null,null],[null,null,null,null,null,null,null,null,null,null,null,null],[null,null,null,null,null,null,null,null,null,null,null,null],[null,null,null,null,null,null,null,null,null,null,null,null],[null,null,null,null,null,null,null,null,null,null,null,null],[null,null,null,null,null,null,null,null,null,null,null,null],[null,null,null,null,null,null,null,null,null,null,null,null]]}"; GameSnapShot gs = JSON.parseObject(jsonString, GameSnapShot.class); Block block = gs.getBlock(); Assert.assertEquals(5, block.getBoxList().size()); Assert.assertEquals(1, block.getBoxList().get(0).getX()); Assert.assertEquals(1, block.getBoxList().get(0).getY()); Assert.assertEquals(0, block.getBoxList().get(2).getX()); Assert.assertEquals(2, block.getBoxList().get(2).getY()); Box[][] boxs = gs.getBoxs(); Assert.assertEquals(20, boxs.length); Assert.assertEquals(12, boxs[0].length); } public static class GameSnapShot implements Serializable { /** * */ private static final long serialVersionUID = 8755961532274905269L; protected Box[][] boxs = null; private Block block; public GameSnapShot(){ super(); } public GameSnapShot(Box[][] boxs, Block block){ super(); this.boxs = boxs; this.block = block; } public Box[][] getBoxs() { return boxs; } public void setBoxs(Box[][] boxs) { this.boxs = boxs; } public Block getBlock() { return block; } public void setBlock(Block block) { this.block = block; } } public static class Box { @JSONField(name = "dx") private int x; @JSONField(name = "dy") private int y; public int getX() { return x; } public void setX(int x) { this.x = x; } public int getY() { return y; } public void setY(int y) { this.y = y; } } public static class Block { private List<Box> boxList = new ArrayList<Box>(); private Box centerBox; private int offsetX; private int offsetY; public int getOffsetX() { return offsetX; } public void setOffsetX(int offsetX) { this.offsetX = offsetX; } public int getOffsetY() { return offsetY; } public void setOffsetY(int offsetY) { this.offsetY = offsetY; } public Box getCenterBox() { return centerBox; } public void setCenterBox(Box centerBox) { this.centerBox = centerBox; } public List<Box> getBoxList() { return boxList; } public void setBoxList(List<Box> boxList) { this.boxList = boxList; } } }