jsonObject对象与本地自定义对象相互转化

来源:互联网 发布:北宋出相 知乎 编辑:程序博客网 时间:2024/05/17 12:01

很多应用程序都设计客户端与服务器段的数据传输。现在比较流行的是以Json格式传输。但是JsonObject对象在本地处理比较麻烦,一个比较好的方法是与服务器进行数据交互时将自定义对象转化为JsonObject对象再进行传输。客户端接受到服务器的jsonObject 数据时将其解析为本地自定义对象再对其进行处理,这样也比较符合面向对象统一编程的思想。

  /**   * 从将JSONObject数据转化为Message对象并返回   *    * @param jobj   *            待转换的JSONObject对象   * @return 转换后的Messageclass对象   */  public static Message castJsonToMessage(JSONObject jobj) {  String typeString = "",  sendTimeString = "";  int senderId = -1, receiverId= -1;  String messageString = "";  try {  senderId = jobj.getInt(Constants.SENDER);  receiverId = jobj.getInt(Constants.RECEIVER);  messageString = jobj.getString(Constants.MESSAGE_CONTENT);  } catch (JSONException e) {  // TODO Auto-generated catch block  e.printStackTrace();  }  ChatContentMessage chatContentMessage =new ChatContentMessage(typeString, senderId, receiverId,  messageString, sendTimeString);  return chatContentMessage;  }

  /**   * 将Message类对象转化为JSONObject并以字符串形式返回便于SOCKET发送   *    * @param message   *            待转换的消息对象   * @return   * @throws JSONException   */  public static String castMessageclassToJsonStr(Message message)  throws JSONException {  JSONObject jsonObject = new JSONObject();  String type=message.type;  if(type.equals(Constants.CHAT_MESSAGE))  {    ChatContentMessage chatContentMessage=(ChatContentMessage)message;  jsonObject.put(Constants.TYPE, chatContentMessage.type);  jsonObject.put(Constants.SENDER, chatContentMessage.senderId);  jsonObject.put(Constants.RECEIVER,chatContentMessage.receiverId);  jsonObject.put(Constants.MESSAGE_CONTENT, chatContentMessage.msg);  jsonObject.put(Constants.SEND_TIME, chatContentMessage.time);  }  return jsonObject.toString();  }


0 0
原创粉丝点击