From 0242f4c0c37210a067dd93859d87f5f239cf4c55 Mon Sep 17 00:00:00 2001 From: Redkale <8730487+redkale@users.noreply.github.com> Date: Thu, 19 Sep 2019 13:22:20 +0800 Subject: [PATCH] --- .../test/convert/BiFunctionConvertMain.java | 62 +++++++++++++++++++ 1 file changed, 62 insertions(+) create mode 100644 test/org/redkale/test/convert/BiFunctionConvertMain.java diff --git a/test/org/redkale/test/convert/BiFunctionConvertMain.java b/test/org/redkale/test/convert/BiFunctionConvertMain.java new file mode 100644 index 000000000..9995a8532 --- /dev/null +++ b/test/org/redkale/test/convert/BiFunctionConvertMain.java @@ -0,0 +1,62 @@ +/* + * 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 java.util.function.BiFunction; +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(new BiFunction() { + @Override + public Object apply(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); + } + }); + 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} + } +}