json数据给实体类赋值

风尘无度 2018-04-12 05:35:24
新人求解........
有如下实体类:
public class UserInfo{
private String name;
private Extattr extattr; //这里标个重点
get&set......
}

public class Extattr {
private List<Attrs> attrs;
get&set......
}

public class Attrs {
private String name;
private String value;
get&set......
}

如下获得json数据后:
public static UserInfo getSNSUserInfo(){
UserInfo userInfo = new UserInfo();
JSONObject jsonObject = getJson();//在此获取josn数据
userInfo.setName(jsonObject.getString("name"));//这样可以获取name的值,并将数据写入到实体类中
//问题是怎么获取extattr的值,并将数据写入到实体类中
}
...全文
1062 5 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
诺丽果 2018-04-13
  • 打赏
  • 举报
回复
如果要获取Attrs里面的名字和value的值,思路就是先获取到extattr的值,再从extattr里面获取attrs的值,这个是嵌套关系,你得先getString("extattr")再getString("attrs"),类似于这样:jsonObject.getString("extattr").getString("attrs")
风尘无度 2018-04-13
  • 打赏
  • 举报
回复
引用 2 楼 trocp 的回复:
  JSONArray array = jsonObject.getJSONArray("attrs");
for(int i= 0; i < array.length(); i++){
JSONObject attr = array.getJSONObject(i);
}

我这报错呀
风尘无度 2018-04-13
  • 打赏
  • 举报
回复
感谢两位回答我的问题! 话说怎么给分???? 下面贴一下我的解决方案:

	Extattr extattr = new Extattr();
	List<Attrs> Attrs = new ArrayList<>();
	JSONArray JSONattrs = jsonObject.getJSONObject("extattr").getJSONArray("attrs");
	for(int i=0; i<JSONattrs.size(); i++){
		JSONObject JSONattr = null;
		JSONattr = JSONattrs.getJSONObject(i);
		Attrs attr = new Attrs();
		attr.setName(JSONattr.getString("name"));
		attr.setValue(JSONattr.getString("value"));
		Attrs.add(attr);
	}
	extattr.setAttrs(Attrs);
oO临时工Oo 2018-04-12
  • 打赏
  • 举报
回复
  JSONArray array = jsonObject.getJSONArray("attrs");
        for(int i= 0; i < array.length(); i++){
        	JSONObject attr = array.getJSONObject(i);
        }
oO临时工Oo 2018-04-12
  • 打赏
  • 举报
回复
JSONArray array = jsonObject.getJSONArray("attrs");
for(int i = 0 ; i < array.length(); i ++){

}

81,122

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧