私は本当にイムは、次のJSONデシリアライズ、ここに助けが必要:私はのInputStream正しいJson逆シリアル化をJavaオブジェクトにする方法は?
として、それをrecive JSONはまた、私は文字列で試してみましたrecive時に、Webサービスを作成するために、ジャージーを使用して
{
"name":"myname",
"userID":"12345",
"password":"sha1passwordASDESFSGSD",
"active":"1",
"profile":"2",
"job":"Manager"
}
イムを
@POST
@Path("user/in/")
@Produces("application/json")
public String InsertUser(InputStream inStr)
{
String line = null, res = "POST 200 > ";
BufferedReader br = new BufferedReader(new InputStreamReader(inStr));
try {
while ((line = br.readLine()) != null) {
System.out.println(line);
res += line;
}
} catch (IOException e) {
e.printStackTrace();
}
try {
UserInformation user = new Gson().fromJson(res, UserInformation.class);
System.out.println("All done");
System.out.println(user.getName());
} catch (Exception e) {
System.out.println("Error al convertir jo object " + e.getCause() + e.getMessage());
}
return "POST 200 > ";
}
私はInputStreamReaderのを使用してみました:
@POST
@Path("user/in/")
@Produces("application/json")
public String InsertUser(InputStream inStr)
{
try {
InputStreamReader isr = new InputStreamReader(inStr);
UserInformation user = new Gson().fromJson(isr, UserInformation.class);
System.out.println("All done");
System.out.println(user.getName());
} catch (Exception e) {
System.out.println("Error al convertir jo object " + e.getCause() + e.getMessage());
}
return "POST 200 > ";
}
これらのコードはどちらも動作しません。彼らは例外をスローしたり、 "All done"をプリントしたりしません。
オブジェクトをデバッグすると、user
は変数メニューに表示されません。
私の経験では、エラーがラインで起こっているためですUserInformation user = new Gson().fromJson(isr, UserInformation.class);
しかし、私はどの1つが表示されますか。
私のユーザ情報クラスは、私はあなたがGoogle gsonを使用していると仮定しています次の
public class UserInformation {
private String name;
private String userID;
private String password;
private String active;
private String profile;
private String job;
// Methods removed for brevity
}
'User'または' UserInformation' ? – Savior
'inStr'とは何ですか? – Savior
例外のスタックトレースを貼り付けてください。 –