json解析

Smallstone丶 2017-12-21 10:30:17
{
"code": 0,
"data": {
"album": {
"count": 2,
"itemlist": [
{
"docid": "12376915326269963904",
"id": "1796048",
"mid": "001JHuu01D8z9W",
"name": "鹿 be free",
"pic": "http://imgcache.qq.com/music/photo/mid_album_58/9/W/001JHuu01D8z9W.jpg",
"singer": "尚雯婕"
},
{
"docid": "16908693560899835025",
"id": "1735025",
"mid": "000CNwEg0NZEaY",
"name": "Black & Golden 黑金",
"pic": "http://imgcache.qq.com/music/photo/mid_album_58/a/Y/000CNwEg0NZEaY.jpg",
"singer": "尚雯婕"
}
],
"name": "专辑",
"order": 2,
"type": 3
},
"mv": {
"count": 2,
"itemlist": [
{
"docid": "14342323242865509776",
"id": "200251202",
"mid": "000KIXPJ3EO3me",
"name": "鹿 be free",
"singer": "尚雯婕",
"vid": "y0022tyqcdd"
},
{
"docid": "17253615392670745805",
"id": "5015471",
"mid": "000svwtg0i5N6Q",
"name": "小星星 The Star",
"singer": "华晨宇/尚雯婕",
"vid": "i00130n1siw"
}
],
"name": "MV",
"order": 3,
"type": 4
},
"singer": {
"count": 1,
"itemlist": [
{
"docid": "7062181315031219079",
"id": "6397",
"mid": "002xqNxr0cVp0E",
"name": "尚雯婕",
"pic": "http://imgcache.qq.com/music/photo/mid_singer_58/0/E/002xqNxr0cVp0E.jpg",
"singer": "尚雯婕"
}
],
"name": "歌手",
"order": 1,
"type": 2
},
"song": {
"count": 4,
"itemlist": [
{
"albummid": "000JOJUg3mkPCG",
"docid": "3422691571898287950",
"id": "211926863",
"mid": "000F77aS1qltR6",
"name": "That Bra",
"singer": "尚雯婕"
},
{
"albummid": "001JHuu01D8z9W",
"docid": "841638566117116314",
"id": "200251202",
"mid": "000KIXPJ3EO3me",
"name": "鹿 be free",
"singer": "尚雯婕"
},
{
"albummid": "002bvLan3nRMoQ",
"docid": "12219381837229758334",
"id": "7182976",
"mid": "004JuLXA4WV6zx",
"name": "待我长发及腰",
"singer": "尚雯婕"
},
{
"albummid": "003YzPbv1EnmJa",
"docid": "4636341454288146808",
"id": "200213614",
"mid": "0043hnU117oa5s",
"name": "free & unafraid 自由与勇敢",
"singer": "尚雯婕"
}
],
"name": "单曲",
"order": 0,
"type": 1
}
},
"subcode": 0
}




怎么解析这样的 以前没有接触过 我看网上的看的不是很理解
怎么把解析出来的数据 存到实体类中(更具上面key)
...全文
215 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
zoujiawei6 2017-12-22
  • 打赏
  • 举报
回复
在java层,解析json有json.jar和jackson.jar两个工具包,网上找的到。 jackson.jar下载地址:http://download.csdn.net/download/c15959140478/7716941 示例:http://blog.csdn.net/zoujiawei6/article/details/77866954 要理解原理的话可以自己写,就是通过反射把json与类对应。 需要jsckson解析示例的话再问我。
oyljerry 2017-12-22
  • 打赏
  • 举报
回复
直接用Gson
qq_16694907 2017-12-22
  • 打赏
  • 举报
回复
JSONObject 可以直接转 Map
鱿鱼ing 2017-12-22
  • 打赏
  • 举报
回复
根据key分析 有几层 一层一层解析就行了 给你网址在线生成了一份研究研究 https://tool.lu/json/
Smallstone丶 2017-12-22
  • 打赏
  • 举报
回复
package cn.entity;

public class Item {
//albummid : song
private String albummid;
//docid : singer,song,mv,album
private String docid;
//id : song,singer,mv,album
private String id;
//mid : song,singer,mv,album
private String mid;
//name : song,singer,mv,album
private String name;
//pic : singer,mv,album
private String pic;
//mv : vid
private String vid;
//song singer
private String singer;


public Item(){

}
/**
* album构造方法
* @param docid
* @param id
* @param mid
* @param name
* @param pic
* @param singer
*/
public Item(String docid,String id,String mid,String name,String pic,String singer){
this.docid = docid;
this.id = id;
this.mid = mid;
this.name = name;
this.pic = pic;
this.singer = singer;
}
public String getPic() {
return pic;
}
public void setPic(String pic) {
this.pic = pic;
}
public String getVid() {
return vid;
}
public void setVid(String vid) {
this.vid = vid;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getAlbummid() {
return albummid;
}
public void setAlbummid(String albummid) {
this.albummid = albummid;
}
public String getDocid() {
return docid;
}
public void setDocid(String docid) {
this.docid = docid;
}
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getMid() {
return mid;
}
public void setMid(String mid) {
this.mid = mid;
}
public String getSinger() {
return singer;
}
public void setSinger(String singer) {
this.singer = singer;
}


}
Smallstone丶 2017-12-22
  • 打赏
  • 举报
回复
昨天看了一下教程已完成 留下一个例子 给需要的人吧
	public static void main(String[] args) {
		String[] array = {"album","mv","singer","song"};
		for (int i = 0; i < array.length; i++) {
			System.out.println(array[i]+":-------------------------------------------");
			List<Item> albumItemlist = getDataItemlist(array[i]);
			for (Item item : albumItemlist) {
				System.out.println("歌手:" + item.getSinger() +  "   专辑名称:"  + item.getName() );
			}
		}
		
	}
	
	
	public static List<Item> getDataItemlist(String name){
		//把json存储到一个jsonObject类型中
		JSONObject jsonObject = new JSONObject(Json_info());
		jsonObject =  jsonObject.getJSONObject("data");
		//取第一个对象album
		JSONObject album = jsonObject.getJSONObject(name);
		JSON_Respones albumJson = new JSON_Respones();
		albumJson.setCount(album.getInt("count"));
		//获取itemlist 的数组
		JSONArray jsonArray = album.getJSONArray("itemlist");
		//存储album下itemlist数据集合
		List<Item> albumItemlist = new ArrayList<Item>();
		for (int i = 0; i < jsonArray.length(); i++) {
			Item it = new Item();
			JSONObject albumItemInfo = (JSONObject)jsonArray.get(i);
			//设置albumItem属性值
			it.setSinger(albumItemInfo.getString("singer"));
			it.setDocid(albumItemInfo.getString("docid"));
			it.setName(albumItemInfo.getString("name"));
			it.setMid(albumItemInfo.getString("mid"));
			it.setId(albumItemInfo.getString("id"));
			if(name == "album"){
				it.setPic(albumItemInfo.getString("pic"));
			}
			if(name == "mv"){
				it.setVid(albumItemInfo.getString("vid"));
			}
			albumItemlist.add(it);
		}
		return albumItemlist;
	}
hp961218 2017-12-22
  • 打赏
  • 举报
回复
是页面里面解析还是java代码里面解析json数据, jsp页面里面可以使用js脚本里的eval(json)转成集合类型,代码里面可以使用fastJson Gson等

67,513

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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