0
私はGsonを試していますが、この問題は解決できません。Google GsonはArrayListを使って単純なオブジェクトを逆シリアル化しません。
何が起こるのかは、Networkクラスが作成され(JSONルート)、3つのレイヤーが追加されることです。これらの3つのレイヤーには、正しい「入力」値または「出力」値が設定されていません(両方とも0です)。私は0
上記の入力値と出力値との3層を期待してい
は、以下の私のJSONクラスとGsonためのコードです。
何が間違っているか教えていただけますか?それは私のJSON構造かJava構造ですか?
Gsonコード:私はそうのような非常に、非常に単純なJSONを持って
try(Reader reader = new InputStreamReader(ModelLoader.class.getResourceAsStream("/test.json"), "UTF-8")){
Gson gson = new GsonBuilder().create();
Network n = gson.fromJson(reader, Network.class);
System.out.println(n);
}
(以下の議論当たりに編集):
public class Layer {
int input;
int output;
float[][] weights;
float[] inputs;
float[] outputs;
public Layer(int input, int output) {
...constructor code initializes vars...
}
public void setInput(int input) {
this.input = input;
}
public void setOutput(int output) {
this.output = output;
}
public void setInputs(float[] inputs) {
this.inputs = inputs;
}
public void setWeight(float[][] weights) {
this.weights = weights;
}
}
:ここ
{
"layers" : [
{"layer":
{"input":300,
"output":8000}
},
{"layer2":
{"input":300,
"output":8000}
},
{"layer3":
{"input":300,
"output":8000}
}
]
}
は、レイヤクラスです
ここにarrを含むクラスがあります層のリスト: import java.util.ArrayList;
public class Network {
ArrayList<Layer> layers;
public Network() {
layers = new ArrayList<Layer>();
}
public void addLayer(Layer l) {
layers.add(l);
}
}
「layer」、「layer2」、および「layer3」はどのようにマップする必要がありますか? –
@SotiriosDelimanolはレイヤークラスです。 – Seephor
なぜですか?あなたのクラスのグループのどこに 'layer'、' layer2'、または 'layer3'という名前のものがありますか? –