发送A类的JSON在B类中

时间:2011-09-03 15:25:02

标签: java web-services json

我开始使用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如何转换东西。还是不是?只是复制数据?

1 个答案:

答案 0 :(得分:1)

gson库正在查看JSON并将它可以映射到您提供的类。

您的两个课程中都有一个名为String的{​​{1}}。 gson在JSON中获取message元素并在两种情况下存储值。在message课程中,如果这些元素出现在JSON中,它还会存储TextMessagesa等的值。

如果您的b类只有TextMessage,则JSON中的其他元素(String messagea等)会被忽略当下。