Dreampie/Resty

json 返回的构建?

yovenny opened this issue · 7 comments

1
2
返回值没有user:{"address":"honghuaguang","comment_count":1,"content":"sdfsd","coord":"guangzhou","create_at":"2015-09-28","device":"android","id":1,"imgeurl":"sdfsd","like_count":12,"liked":1,"location":"china","owner_id":1}

user在数据库没有对应的实体表,(只是真正user的几个字段),这种情况应该怎么搞??

期望结果:{"user":{"name","---","icon":"http:"},"address":"honghuaguang","comment_count":1,"content":"sdfsd","coord":"guangzhou","create_at":"2015-09-28","device":"android","id":1,"imgeurl":"sdfsd","like_count":12,"liked":1,"location":"china","owner_id":1}

用map,一个一个字段重新构建,返回map吗?

不用写user属性

public User getUser(){
  User user=this.get("user");
  if(user==null){ 
    user=User.dao.findById(xx);
    this.put("user",user);
  }
  return user;
}


//getXxx 会被认为是属性  转换json的时候 会被执行一次

将这段代码加到Bubble,出现了以下错误:Caused by: cn.dreampie.common.entity.exception.EntityException: The attribute name is not exists: user

抱歉,
this.set("user",user); 会检查属性,改成put应该ok

原来是我写错了,不好意思啊!有时间会去了解下里面的代码的。

最后:

    public SimpleUser getSimpleUser(){
            SimpleUser simpleUser=this.get("user");
            if(simpleUser==null){
                SimpleUser saveSimpleUser=new SimpleUser();
                User user=User.dao.findFirstBy("id =?", this.get("owner_id"));
                saveSimpleUser.id=user.get("id");
                saveSimpleUser.name=user.get("username");
                simpleUser=saveSimpleUser;
                this.put("user",simpleUser);
            }
            return simpleUser;
        }

        public static class  SimpleUser{
            public long id;
            public String name;
        }