您的位置:首页 > 编程语言 > Java开发

含实体类、Set集合的JavaBean与Json之间的转换,以及在JS中读取

2013-08-07 12:55 501 查看
LoginAccountBean转换为JSON

//创建LoginAccount对象的list集合 ;this.getLoginAccounts是我制作数据的函数
List<LoginAccount> listJson=this.getLoginAccounts();
//将List转换为JSON
JSONArray jsonArray=JSONArray.fromObject(listJson);
System.out.println(jsonArray);


JS中读取返回的JSON数据【data为返回的JSON对象jsonArray】

for(var i in data){
alert("ID:"+data[i].id+"\nAccount:"+data[i].account+"\nuID:"+data[i].userInfos.id+"\nuName"+data[i].userInfos.name);
//Set集合对象相当于另一个json,再次遍历即可
for(var j in data[i].sendMessages){
alert("SMID:"+data[i].sendMessages[j].id+"\nSMContent:"+data[i].sendMessages[j].content);
}
}


JavaBean和数据设置方法介绍

LoginAccountBean

private String id;
private String account;
private UserInfos userInfos;
private Set<Message> sendMessages;
..get/set

UserInfosBean

private String id;
private String name;
..get/set

MessageBean

private String id;
private String content;
..get/set


制作List<LoginAccount>数据的代码【这部分不需要细看,其效果等同于使用Service/DAO层返回数据,为了使代码更清晰和突出关键代码,所以不进行数据库访问,直接在这写好数据返回】

public List<LoginAccount> getLoginAccounts(){
List<LoginAccount> listJson=new ArrayList<LoginAccount>();
//制作数据
LoginAccount lAccount1=new LoginAccount();
//设置LoginAccount内的基本数据
lAccount1.setId("L0001");
lAccount1.setAccount("xiaoMing");
//设置 UserInfo 实体对象
UserInfos userInfos1=new UserInfos();
userInfos1.setId("0001");
userInfos1.setName("小明");
lAccount1.setUserInfos(userInfos1);
//设置Set<Message> 数据集
Message m1=new Message();
m1.setId("M0001");
m1.setContent("小明的第一条消息");
Message m2=new Message();
m2.setId("M0002");
m2.setContent("小明的第二条消息");
Message m3=new Message();
m3.setId("M0003");
m3.setContent("小明的第三条消息");
Set<Message> mSet=new LinkedHashSet<Message>();//HashSet不按顺序排列,因此这里使用LinkedHashSet
mSet.add(m1);
mSet.add(m2);
mSet.add(m3);
//添加数据集
lAccount1.setSendMessages(mSet);

//类似上面的方法
LoginAccount lAccount2=new LoginAccount();
lAccount2.setId("L0002");
lAccount2.setAccount("xiaoHong");
UserInfos userInfos2=new UserInfos();
userInfos2.setId("0002");
userInfos2.setName("小红");
lAccount2.setUserInfos(userInfos2);
Message m4=new Message();
m4.setId("M0004");
m4.setContent("小红的唯一一条消息");
Set<Message> mSet2=new LinkedHashSet<Message>();
mSet2.add(m4);
lAccount2.setSendMessages(mSet2);

LoginAccount lAccount3=new LoginAccount();
lAccount3.setId("L0003");
lAccount3.setAccount("xiaoHei");
UserInfos userInfos3=new UserInfos();
userInfos3.setId("0003");
userInfos3.setName("小黑");
lAccount3.setUserInfos(userInfos3);
Message m5=new Message();
Message m6=new Message();
m5.setId("M0005");
m5.setContent("小黑的第一条消息");
m6.setId("M0006");
m6.setContent("小黑的最后一条消息");
Set<Message> mSet3=new LinkedHashSet<Message>();
mSet3.add(m5);
mSet3.add(m6);
lAccount3.setSendMessages(mSet3);
//添加数据
listJson.add(lAccount1);
listJson.add(lAccount2);
listJson.add(lAccount3);
return listJson;
}

这个是设置将java中把对象、对象bean、list集合、对象数组、Map和Set以及字符串转换成Json的方法,感觉挺不错/article/7047350.html
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: