私はジャーソン2.9.2でデシリアライズできませんでした。私は、ユニ・プロジェクトのためにゲームを作ろうとしています。私は私のプレイヤークラスを保存し、それをシリアライズが、私はそれをデシリアライズし、それから、新しいプレーヤーを作成しようとすると、それはnullにすべての変数を設定し、これが私の方法であることができる場所:ジャーソンデシリアライズの問題は、すべての変数をnullに設定します。
public void LoadSaveString() throws IOException{
ObjectMapper mapper = new ObjectMapper();
SimpleModule module = new SimpleModule();
//module.addDeserializer(SaveFile.class, new SaveDeserializer());
mapper.registerModule(module);
String filePath = "files/SaveFile.json";
BufferedReader reader = new BufferedReader(new FileReader(filePath));
testfile = reader.readLine();
System.out.println("Stringen testfilen bliver printet: " + testfile);
Player player1 = (Player) mapper.readValue(testfile, Player.class);
System.out.println("Test 2: " + player1.toString());
}
と私が手出力は次のようになります。
Stringen testfilen bliver printet:{ "プレーヤー":{ "馬力":100、 "空気":97、 "在庫":[]、 "hasCalledHelp":偽、 "wonGame" :false、 "playe 0 "、" totalTimePlayed ":3、" terminThreads ":false、" stopThreadOxygen ":false、" stopThreadHP ":false、" name ":" Mads "}}
試験2:プレーヤー{HP = 0、空気= 0、在庫=ヌル、hasCalledHelp =偽、wonGame =偽、awesomePoints = 0、totalTimePlayed = 0、terminateThreads =偽、stopThreadOxygen =偽、stopThreadHP =偽}
と私は、未知の特性を無視し、私のプレーヤーのクラスを設定しているので、私は唯一、取得と設定、playerclass
@JsonIgnoreProperties(ignoreUnknown = true)
、私のプロパティのために重要な事柄プレイヤーのクラス:
public class Player {
private int hp;
private int air;
private ArrayList<Item> inventory;
private boolean hasCalledHelp = false;
private boolean wonGame = false;
public String playerName = "Mads"; // Non-negotiable
public int awesomePoints = 0;
public int totalTimePlayed = 0;
編集:
ファイルSaveFile.jsonの内容:
{
"player": {
"hp": 100,
"air": 97,
"inventory": [],
"hasCalledHelp": false,
"wonGame": false,
"playerName": "Mads",
"awesomePoints": 0,
"totalTimePlayed": 3,
"terminateThreads": false,
"stopThreadOxygen": false,
"stopThreadHP": false,
"name": "Mads"
}
}
あなたはSaveFile.jsonのコンテンツを投稿できますか? – JanTheGun
投稿を編集しました –