package com.yeshi.buwan.videos.acFun;
|
|
import java.lang.reflect.Type;
|
import java.util.ArrayList;
|
import java.util.HashMap;
|
import java.util.List;
|
import java.util.Map;
|
|
import javax.annotation.Resource;
|
|
import org.springframework.stereotype.Component;
|
|
import com.google.gson.JsonArray;
|
import com.google.gson.JsonDeserializationContext;
|
import com.google.gson.JsonDeserializer;
|
import com.google.gson.JsonElement;
|
import com.google.gson.JsonObject;
|
import com.google.gson.JsonParseException;
|
import com.yeshi.buwan.service.imp.AcFunTypeService;
|
@Component
|
public class AcFunAdpater implements JsonDeserializer<List<AcFunVideo>>{
|
|
@Resource
|
private AcFunTypeService acFunTypeService;
|
|
@Override
|
public List<AcFunVideo> deserialize(JsonElement json, Type type,
|
JsonDeserializationContext context) throws JsonParseException {
|
List<AcFunVideo> acFunVideoList = new ArrayList<AcFunVideo>();
|
if(json.isJsonArray()){
|
JsonArray array = json.getAsJsonArray();
|
AcFunVideo acFunVideo;
|
Map<String,AcFunType> map = new HashMap<String,AcFunType>();
|
List<AcFunType> list = acFunTypeService.getAcFunTypeList();
|
for (AcFunType acFunType : list) {
|
map.put(acFunType.getCode(), acFunType);
|
}
|
for (int i = 0; i < array.size(); i++) {
|
JsonElement acJson = array.get(i);
|
if(acJson.isJsonObject()){
|
acFunVideo = new AcFunVideo();
|
JsonObject acObject = acJson.getAsJsonObject();
|
long id = acObject.get("id").getAsLong();
|
String url = acObject.get("playUrl").getAsString();
|
String img = acObject.get("videoThumbImg").getAsString();
|
String desc = acObject.get("videoDesc").getAsString();
|
JsonElement videoTag = acObject.get("videoTag");
|
String tag ="";
|
if(videoTag != null){
|
tag = acObject.get("videoTag").getAsString();
|
}
|
String title = acObject.get("videoTitle").getAsString();
|
long update = acObject.get("updatedAt").getAsLong();
|
int num = acObject.get("videoNum").getAsInt();
|
String vcode = acObject.get("videoType").getAsString();
|
AcFunType acType = map.get(vcode);
|
if(acType != null){
|
acFunVideo.setVideoType(acType);
|
}
|
acFunVideo.setId(id);
|
acFunVideo.setPlayUrl(url);
|
acFunVideo.setVideoDesc(desc);
|
acFunVideo.setVideoNum(num);
|
acFunVideo.setVideoTag(tag);
|
acFunVideo.setVideoThumbImg(img);
|
acFunVideo.setVideoTitle(title);
|
acFunVideo.setUpdateTime(update);
|
acFunVideoList.add(acFunVideo);
|
}
|
}
|
}
|
|
return acFunVideoList;
|
}
|
|
}
|