content: package com.alibaba.json.test.knowissue;
  
  import java.util.Date;
  import java.util.HashSet;
  import java.util.Set;
  
  import junit.framework.TestCase;
  
  import com.alibaba.fastjson.JSON;
  import com.alibaba.fastjson.JSONObject;
  import com.alibaba.fastjson.serializer.SerializeConfig;
  import com.alibaba.fastjson.serializer.SimpleDateFormatSerializer;
  
  public class Bug_for_loveflying extends TestCase {
  
      public void test_for_loveflying() throws Exception {
          User user = new User();
          user.setId(1l);
          user.setName("loveflying");
          user.setCreateTime(new java.sql.Timestamp(new Date().getTime()));
  
          UserLog userLog = new UserLog();
          userLog.setId(1l);
          userLog.setUser(user);
          user.getUserLogs().add(userLog);
  
          userLog = new UserLog();
          userLog.setId(2l);
          userLog.setUser(user);
          user.getUserLogs().add(userLog);
  
          SerializeConfig mapping = new SerializeConfig();
  
          mapping.put(java.sql.Date.class, new SimpleDateFormatSerializer("yyyy-MM-dd"));
          mapping.put(java.sql.Timestamp.class, new SimpleDateFormatSerializer("yyyy-MM-dd HH:mm:ss"));
          // mapping.put(User.class, new JavaBeanSerializer(User.class,
          // Collections.singletonMap("id", "uid")));
  
          JSONObject jsonObject = (JSONObject) JSON.toJSON(user);
          jsonObject.put("ext", "新加的属性");
          System.out.println(jsonObject.toJSONString(jsonObject, mapping));
      }
  
      public static class UserLog {
  
          private Long           id;
  
          private transient User user;
  
          public Long getId() {
              return id;
          }
  
          public void setId(Long id) {
              this.id = id;
          }
  
          public User getUser() {
              return user;
          }
  
          public void setUser(User user) {
              this.user = user;
          }
  
      }
  
      public static class User {
  
          private Long               id;
  
          private String             name;
  
          private java.sql.Timestamp createTime;
  
          private Set<UserLog>       userLogs = new HashSet<UserLog>();
  
          public Long getId() {
              return id;
          }
  
          public void setId(Long id) {
              this.id = id;
          }
  
          public String getName() {
              return name;
          }
  
          public void setName(String name) {
              this.name = name;
          }
  
          public java.sql.Timestamp getCreateTime() {
              return createTime;
          }
  
          public void setCreateTime(java.sql.Timestamp createTime) {
              this.createTime = createTime;
          }
  
          public Set<UserLog> getUserLogs() {
              return userLogs;
          }
  
          public void setUserLogs(Set<UserLog> userLogs) {
              this.userLogs = userLogs;
          }
  
      }
  }
  