我开始使用Restful网络服务并通过JSON google gson学习。虽然到目前为止我刚刚制作了我的服务器制作人和json消费者应用程序 而我很喜欢它。
现在这是我的消费者代码:它有一个TextMessages类对象消息
private void submitButtonActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
InputStreamReader reader = null;
String name = nameTextfield.getText();
String url = "http://myurl/" + name;
try {
try {
reader = new InputStreamReader(new URL(url).openStream());
} catch (MalformedURLException ex) {
Logger.getLogger(StartClient.class.getName()).log(Level.SEVERE, null, ex);
}
} catch (IOException ex) {
Logger.getLogger(StartClient.class.getName()).log(Level.SEVERE, null, ex);
}
TextMessages message = new Gson().fromJson(reader, TextMessages.class);
JOptionPane.showMessageDialog(this, message.getMessage(), "Welcome" + message.sumAllIntegers(),
JOptionPane.INFORMATION_MESSAGE);
}
// class TextMessages
package use;
public class TextMessages{
private String message;
private int a,b,c,d,wee;
public TextMessages(String __message){
message = __message;
}
public TextMessages(){
}
public String getMessage(){
return message;
}
public void setMessage(String __message){
message = __message;
}
}
现在服务器正在发送类OtherTestMessage的JSON
public class TextMessage {
private String message;
//getter and setter functions
// no int a,b
.....
为什么它正常工作?他的工作正常吗?这又是语言哲学吗? JSON如何转换东西。还是不是?只是复制数据?
答案 0 :(得分:1)
gson库正在查看JSON并将它可以映射到您提供的类。
您的两个课程中都有一个名为String
的{{1}}。 gson在JSON中获取message
元素并在两种情况下存储值。在message
课程中,如果这些元素出现在JSON中,它还会存储TextMessages
,a
等的值。
如果您的b
类只有TextMessage
,则JSON中的其他元素(String message
,a
等)会被忽略当下。