我有一个POJO,其中包含用于跟踪属性是否已显式设置的所有属性的自定义setter方法。 setter存储到fieldNameSet
布尔字段,并为这些标志公开isFieldNameSet
个getter。 我希望杰克逊仅使用isFieldNameSet
作为true
的字段动态序列化课程。
背景
我开始编写自定义JsonFilter
实现,但它没有给出关于当前被序列化的对象实例的任何上下文,所以显然我无法读取isFieldNameSet
属性的当前值。 / p>
答案 0 :(得分:0)
快速攻击杰克逊的例子
package tictactoe;
import java.awt.Dimension;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JFrame;
public class TicTacToe implements ActionListener
{
JFrame window;
static JButton[][]cells=new JButton[3][3];
boolean playing;
char turn='X';
public TicTacToe()
{
//SETS UP THE WINDOW
window=new JFrame("TicTacToe");
window.setSize(new Dimension(400,400));
window.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
window.setResizable(false);
//**********************//
createCells();
window.setVisible(true);
}
public static void main(String[] args)
{
new TicTacToe();
}
private void createCells()
{
window.setLayout(new GridLayout(3,3));
for(int i=0;i<cells.length;i++)
{
for(int j=0;j<cells.length;j++)
{
cells[i][j]=new JButton();
cells[i][j].addActionListener(this);
window.add(cells[i][j]);
}
}
}
@Override
public void actionPerformed(ActionEvent e)
{
playing=true;
JButton _buttonPressed=(JButton)e.getSource();
while(playing)
{
if(turn=='X')
{
_buttonPressed.setText("X");
_buttonPressed.setEnabled(false);
turn='O';
}
else
{
_buttonPressed.setText("O");
_buttonPressed.setEnabled(false);
}
}
}
}
如您所见,忽略年龄:
{“name”:“mkyong”,“messages”:[“hello jackson 1”,“hello jackson 2”,“hello jackson 3”]}
注意杰克逊来源:https://www.mkyong.com/java/how-to-convert-java-object-to-from-json-jackson/