Files
redkale/test/org/redkale/test/convert/BiFunctionConvertMain.java
Redkale dfca186688
2019-10-15 18:01:34 +08:00

69 lines
2.6 KiB
Java

/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
package org.redkale.test.convert;
import org.redkale.convert.ConvertField;
import org.redkale.convert.json.JsonConvert;
import org.redkale.util.Attribute;
/**
*
* @author zhangjx
*/
public class BiFunctionConvertMain {
public static class GamePlayer {
public int userid;
public String username;
public int[] cards;
}
public static class GameTable {
public int tableid;
public GamePlayer[] players;
}
public static void main(String[] args) throws Throwable {
GamePlayer player1 = new GamePlayer();
player1.userid = 1;
player1.username = "玩家1";
player1.cards = new int[]{11, 12, 13, 14, 15};
GamePlayer player2 = new GamePlayer();
player2.userid = 2;
player2.username = "玩家2";
player2.cards = new int[]{21, 22, 23, 24, 25};
GamePlayer player3 = new GamePlayer();
player3.userid = 3;
player3.username = "玩家3";
player3.cards = new int[]{31, 32, 33, 34, 35};
GameTable table = new GameTable();
table.tableid = 100;
table.players = new GamePlayer[]{player1, player2, player3};
JsonConvert convert1 = JsonConvert.root();
System.out.println(convert1.convertTo(table));
JsonConvert convert2 = convert1.newConvert((Attribute t, Object u) -> {
if (t.field().equals("cards") && u instanceof GamePlayer) {
int userid = ((GamePlayer) u).userid;
if (userid == 3) return null; //玩家3的cards不输出
return t.get(u);
}
return t.get(u);
}, (Object u) -> {
if (table != u) return null;
//return new ConvertField[]{new ConvertField("extcol1", 30), new ConvertField("extcol2", "扩展字段值")};
return ConvertField.ofArray("extcol1", 30, "extcol2", "扩展字段值");
});
System.out.println(convert2.convertTo(table));
//{"players":[{"cards":[11,12,13,14,15],"userid":1,"username":"玩家1"},{"cards":[21,22,23,24,25],"userid":2,"username":"玩家2"},{"cards":[31,32,33,34,35],"userid":3,"username":"玩家3"}],"tableid":100}
//{"players":[{"cards":[11,12,13,14,15],"userid":1,"username":"玩家1"},{"cards":[21,22,23,24,25],"userid":2,"username":"玩家2"},{"userid":3,"username":"玩家3"}],"tableid":100,"extcol1":30,"extcol2":"扩展字段值"}
}
}