package com.yeshi.goods.facade.utils.taobao;
|
|
import java.io.IOException;
|
import java.lang.reflect.Type;
|
import java.math.BigDecimal;
|
import java.util.ArrayList;
|
import java.util.HashMap;
|
import java.util.List;
|
import java.util.Map;
|
|
import com.google.gson.GsonBuilder;
|
import com.google.gson.TypeAdapter;
|
import com.google.gson.TypeAdapterFactory;
|
import com.google.gson.stream.JsonReader;
|
import com.google.gson.stream.JsonToken;
|
import com.google.gson.stream.JsonWriter;
|
import com.yeshi.goods.facade.dto.taobao.haodanku.*;
|
import org.yeshi.utils.HttpUtil;
|
|
import com.google.gson.Gson;
|
import com.google.gson.reflect.TypeToken;
|
import com.yeshi.goods.facade.entity.taobao.haodanku.HDKGoodsDetail;
|
|
import net.sf.json.JSONArray;
|
import net.sf.json.JSONObject;
|
import org.yeshi.utils.StringUtil;
|
|
/**
|
* 好单库API
|
*
|
* @author Administrator
|
*/
|
public class HaoDanKuApiUtil {
|
|
private final static String API_KEY = "blks";
|
|
private static HaoDanKuApiUtil instance;
|
|
public static HaoDanKuApiUtil getInstance() {
|
if (instance == null)
|
instance = new HaoDanKuApiUtil();
|
return instance;
|
}
|
|
private String baseGetRequest(String path, List<ParamsKeyValue> params) {
|
params.add(0, new HaoDanKuApiUtil.ParamsKeyValue("apikey", API_KEY));
|
String url = "http://v2.api.haodanku.com/" + path;
|
for (ParamsKeyValue keyValue : params) {
|
url += ("/" + keyValue.key + "/" + keyValue.value);
|
}
|
return HttpUtil.get(url);
|
}
|
|
private String basePostRequest(String url, List<ParamsKeyValue> params) {
|
params.add(0, new HaoDanKuApiUtil.ParamsKeyValue("apikey", API_KEY));
|
Map<String, String> parmasMap = new HashMap<>();
|
for (ParamsKeyValue keyValue : params) {
|
parmasMap.put(keyValue.key, keyValue.value);
|
}
|
return HttpUtil.post(url, parmasMap, null);
|
}
|
|
/**
|
* 获取朋友圈API的内容
|
*
|
* @throws
|
* @Title: getSendWXCircleContent
|
* @Description: void 返回类型
|
*/
|
public void getSendWXCircleContent(Integer minId) {
|
if (minId == null)
|
minId = 1;
|
List<ParamsKeyValue> params = new ArrayList<HaoDanKuApiUtil.ParamsKeyValue>();
|
params.add(new ParamsKeyValue("min_id", minId + ""));
|
String result = baseGetRequest("selected_item", params);
|
System.out.println(result);
|
}
|
|
public String convertLink(String auctionId, String pid, String activityId, String specialId, String relationId) {
|
List<ParamsKeyValue> params = new ArrayList<HaoDanKuApiUtil.ParamsKeyValue>();
|
params.add(new ParamsKeyValue("itemid", auctionId + ""));
|
params.add(new ParamsKeyValue("pid", pid));
|
if (!StringUtil.isNullOrEmpty(specialId)) {
|
params.add(new ParamsKeyValue("special_id", specialId));
|
}
|
|
if (!StringUtil.isNullOrEmpty(relationId)) {
|
params.add(new ParamsKeyValue("relation_id", relationId));
|
}
|
|
|
if (activityId != null)
|
params.add(new ParamsKeyValue("activityid", activityId));
|
String result = basePostRequest("http://v2.api.haodanku.com/ratesurl", params);
|
System.out.println(result);
|
JSONObject resultData = JSONObject.fromObject(result);
|
String link = "";
|
if (resultData.optInt("code") == 1) {
|
resultData = resultData.optJSONObject("data");
|
link = resultData.optString("coupon_click_url");
|
if (StringUtil.isNullOrEmpty(link)) {
|
link = resultData.optString("item_url");
|
}
|
}
|
|
return link;
|
}
|
|
/**
|
* 商品列表
|
*
|
* @param minId
|
* @param catIds
|
* @param pageSize
|
* @return HDKGoodsListResultDTO 返回类型
|
* @throws
|
* @Title: listGoods
|
* @Description:
|
*/
|
// 详情:https://www.haodanku.com/api/detail/show/1.html
|
public HDKGoodsListResultDTO listGoods(Integer minId, List<Integer> catIds, int pageSize) {
|
if (minId == null)
|
minId = 1;
|
List<ParamsKeyValue> params = new ArrayList<HaoDanKuApiUtil.ParamsKeyValue>();
|
params.add(new ParamsKeyValue("nav", 3 + ""));
|
params.add(new ParamsKeyValue("back", pageSize + ""));
|
params.add(new ParamsKeyValue("min_id", minId + ""));
|
params.add(new ParamsKeyValue("sort", 0 + ""));
|
if (catIds != null && catIds.size() > 0) {
|
params.add(new ParamsKeyValue("cid", StringUtil.concat(catIds, ",")));
|
}
|
|
String result = baseGetRequest("itemlist", params);
|
|
JSONObject resultData = JSONObject.fromObject(result);
|
if (resultData.optInt("code") == 1) {
|
Integer newMinId = resultData.optInt("min_id");
|
Type type = new TypeToken<ArrayList<HDKGoodsDetail>>() {
|
}.getType();
|
List<HDKGoodsDetail> list = null;
|
try {
|
list = new Gson().fromJson(resultData.optJSONArray("data").toString(), type);
|
} catch (Exception e) {
|
list = new ArrayList<>();
|
JSONArray array = resultData.optJSONArray("data");
|
for (int i = 0; i < array.size(); i++) {
|
JSONObject item = array.optJSONObject(i);
|
Object desc = item.opt("itemdesc");
|
if (!(desc instanceof String)) {
|
item.put("itemdesc", "");
|
}
|
list.add(new Gson().fromJson(item.toString(), HDKGoodsDetail.class));
|
}
|
|
|
}
|
return new HDKGoodsListResultDTO(list, newMinId);
|
}
|
|
return null;
|
}
|
|
|
/**
|
* 商品列表筛选
|
*
|
* @param filter
|
* @return
|
*/
|
public HDKGoodsListResultDTO queryList(HDKSearchFilter filter) {
|
List<ParamsKeyValue> params = new ArrayList<HaoDanKuApiUtil.ParamsKeyValue>();
|
params.add(new ParamsKeyValue("back", filter.getBack() + ""));
|
params.add(new ParamsKeyValue("min_id", filter.getMinId() + ""));
|
params.add(new ParamsKeyValue("nav", filter.getNav() + ""));
|
if (!StringUtil.isNullOrEmpty(filter.getCid()))
|
params.add(new ParamsKeyValue("cid", filter.getCid()));
|
if (filter.getPriceMin() != null)
|
params.add(new ParamsKeyValue("price_min", filter.getPriceMin() + ""));
|
if (filter.getPriceMax() != null)
|
params.add(new ParamsKeyValue("price_max", filter.getPriceMax() + ""));
|
if (filter.getSaleMin() != null)
|
params.add(new ParamsKeyValue("sale_min", filter.getSaleMin() + ""));
|
if (filter.getSaleMax() != null)
|
params.add(new ParamsKeyValue("sale_max", filter.getSaleMax() + ""));
|
if (filter.getCouponMin() != null)
|
params.add(new ParamsKeyValue("coupon_min", filter.getCouponMin() + ""));
|
if (filter.getCouponMax() != null)
|
params.add(new ParamsKeyValue("coupon_max", filter.getCouponMax() + ""));
|
if (filter.getTkratesMin() != null)
|
params.add(new ParamsKeyValue("tkrates_min", filter.getTkratesMin() + ""));
|
if (filter.getTkratesMax() != null)
|
params.add(new ParamsKeyValue("tkrates_max", filter.getTkratesMax() + ""));
|
if (filter.getTkmoneyMin() != null)
|
params.add(new ParamsKeyValue("tkmoney_min", filter.getTkmoneyMin() + ""));
|
if (filter.getItemType() != null)
|
params.add(new ParamsKeyValue("item_type", filter.getItemType() + ""));
|
|
String result = baseGetRequest("itemlist", params);
|
JSONObject resultData = JSONObject.fromObject(result);
|
if (resultData.optInt("code") == 1) {
|
Integer newMinId = resultData.optInt("min_id");
|
Type type = new TypeToken<ArrayList<HDKGoodsDetail>>() {
|
}.getType();
|
List<HDKGoodsDetail> list = new Gson().fromJson(resultData.optJSONArray("data").toString(), type);
|
return new HDKGoodsListResultDTO(list, newMinId);
|
}
|
return null;
|
}
|
|
|
/**
|
* 商品爆单列表
|
*
|
* @param minId
|
* @param catIds
|
* @param pageSize
|
* @return HDKGoodsListResultDTO 返回类型
|
* @throws
|
* @Title: listGoods
|
* @Description:
|
*/
|
public HDKGoodsListResultDTO listHotGoods(Integer minId, int pageSize, int saleType, List<Integer> catIds) {
|
if (minId == null)
|
minId = 1;
|
List<ParamsKeyValue> params = new ArrayList<HaoDanKuApiUtil.ParamsKeyValue>();
|
params.add(new ParamsKeyValue("sale_type", saleType + ""));
|
params.add(new ParamsKeyValue("back", pageSize + ""));
|
params.add(new ParamsKeyValue("min_id", minId + ""));
|
params.add(new ParamsKeyValue("item_type", 1 + "")); // 是否只获取营销返利商品,1是,0否
|
if (catIds != null && catIds.size() > 0) {
|
params.add(new ParamsKeyValue("cid", StringUtil.concat(catIds, ",")));
|
}
|
|
String result = baseGetRequest("sales_list", params);
|
|
JSONObject resultData = JSONObject.fromObject(result);
|
if (resultData.optInt("code") == 1) {
|
Integer newMinId = resultData.optInt("min_id");
|
Type type = new TypeToken<ArrayList<HDKGoodsDetail>>() {
|
}.getType();
|
List<HDKGoodsDetail> list = new Gson().fromJson(resultData.optJSONArray("data").toString(), type);
|
return new HDKGoodsListResultDTO(list, newMinId);
|
}
|
|
return null;
|
}
|
|
|
/**
|
* 增量更新的商品
|
*
|
* @param minId
|
* @param startHour
|
* @param endHour
|
* @param pageSize
|
* @return HDKGoodsListResultDTO 返回类型
|
* @throws
|
* @Title: listAddGoods
|
* @Description:
|
*/
|
public HDKGoodsListResultDTO listAddGoods(Integer minId, int startHour, int endHour, int pageSize) {
|
if (minId == null)
|
minId = 1;
|
List<ParamsKeyValue> params = new ArrayList<HaoDanKuApiUtil.ParamsKeyValue>();
|
params.add(new ParamsKeyValue("back", pageSize + ""));
|
params.add(new ParamsKeyValue("min_id", minId + ""));
|
params.add(new ParamsKeyValue("start", startHour + ""));
|
params.add(new ParamsKeyValue("end", endHour + ""));
|
|
String result = baseGetRequest("timing_items", params);
|
JSONObject resultData = JSONObject.fromObject(result);
|
if (resultData.optInt("code") == 1) {
|
Integer newMinId = resultData.optInt("min_id");
|
Type type = new TypeToken<ArrayList<HDKGoodsDetail>>() {
|
}.getType();
|
List<HDKGoodsDetail> list = new Gson().fromJson(resultData.optJSONArray("data").toString(), type);
|
return new HDKGoodsListResultDTO(list, newMinId);
|
}
|
|
return null;
|
}
|
|
/**
|
* 更新商品信息
|
*
|
* @param minId
|
* @param pageSize void 返回类型
|
* @throws
|
* @Title: listUpdateGoods
|
* @Description:
|
*/
|
public HDKGoodsListResultDTO listUpdateGoods(Integer minId, int pageSize) {
|
List<ParamsKeyValue> params = new ArrayList<HaoDanKuApiUtil.ParamsKeyValue>();
|
params.add(new ParamsKeyValue("back", pageSize + ""));
|
params.add(new ParamsKeyValue("min_id", minId + ""));
|
String result = baseGetRequest("update_item", params);
|
JSONObject resultData = JSONObject.fromObject(result);
|
if (resultData.optInt("code") == 1) {
|
Integer newMinId = resultData.optInt("min_id");
|
Type type = new TypeToken<ArrayList<HDKGoodsDetail>>() {
|
}.getType();
|
List<HDKGoodsDetail> list = new Gson().fromJson(resultData.optJSONArray("data").toString(), type);
|
return new HDKGoodsListResultDTO(list, newMinId);
|
}
|
return null;
|
}
|
|
/**
|
* 拉取失效商品
|
*
|
* @param startHour
|
* @param endHour
|
* @return List<Long> 返回类型
|
* @throws
|
* @Title: listInvalidGoods
|
* @Description:
|
*/
|
public List<Long> listInvalidGoods(int startHour, int endHour) {
|
List<ParamsKeyValue> params = new ArrayList<HaoDanKuApiUtil.ParamsKeyValue>();
|
params.add(new ParamsKeyValue("start", startHour + ""));
|
params.add(new ParamsKeyValue("end", endHour + ""));
|
String result = baseGetRequest("get_down_items", params);
|
JSONObject resultData = JSONObject.fromObject(result);
|
List<Long> goodsIdList = new ArrayList<>();
|
if (resultData.optInt("code") == 1) {
|
|
JSONArray array = resultData.optJSONArray("data");
|
for (int i = 0; i < array.size(); i++) {
|
goodsIdList.add(array.optJSONObject(i).optLong("itemid"));
|
}
|
}
|
return goodsIdList;
|
}
|
|
class ParamsKeyValue {
|
String key;
|
String value;
|
|
public ParamsKeyValue(String key, String value) {
|
super();
|
this.key = key;
|
this.value = value;
|
}
|
}
|
|
|
public HDKGoodsListResultDTO listSelected(Integer minId) {
|
if (minId == null)
|
minId = 1;
|
List<ParamsKeyValue> params = new ArrayList<HaoDanKuApiUtil.ParamsKeyValue>();
|
params.add(new ParamsKeyValue("min_id", minId + ""));
|
String result = baseGetRequest("selected_item", params);
|
|
JSONObject resultData = JSONObject.fromObject(result);
|
if (resultData.optInt("code") == 1) {
|
JSONArray array = resultData.optJSONArray("data");
|
if (array != null) {
|
List<HDKWXCircleContentDTO> list = new ArrayList<>();
|
for (int i = 0; i < array.size(); i++) {
|
JSONObject item = array.optJSONObject(i);
|
HDKWXCircleContentDTO dto = new HDKWXCircleContentDTO();
|
dto.setTitle(item.optString("title"));
|
dto.setItemid(item.optString("itemid"));
|
dto.setItemtitle(item.optString("itemtitle"));
|
dto.setContent(item.optString("content"));
|
dto.setCopy_content(item.optString("copy_content"));
|
dto.setShow_content(item.optString("show_content"));
|
|
JSONArray imgArray = item.optJSONArray("itempic");
|
if (imgArray != null) {
|
List<String> imgList = new ArrayList<>();
|
for (int n = 0; n < imgArray.size(); n++) {
|
imgList.add(imgArray.optString(n));
|
}
|
dto.setItempic(imgList);
|
}
|
list.add(dto);
|
}
|
HDKGoodsListResultDTO dto = new HDKGoodsListResultDTO();
|
dto.setList(list);
|
dto.setMinId(minId);
|
return dto;
|
}
|
}
|
return null;
|
}
|
|
/**
|
* 单品详情API
|
*
|
* @param itemid
|
* @return
|
*/
|
public HDKGoodsDetail getItemDetail(String itemid) {
|
List<ParamsKeyValue> params = new ArrayList<HaoDanKuApiUtil.ParamsKeyValue>();
|
params.add(new ParamsKeyValue("itemid", itemid));
|
String result = baseGetRequest("item_detail", params);
|
|
JSONObject resultData = JSONObject.fromObject(result);
|
if (resultData.optInt("code") == 1) {
|
Type type = new TypeToken<HDKGoodsDetail>() {
|
}.getType();
|
HDKGoodsDetail goodsDetail = new Gson().fromJson(resultData.optJSONObject("data").toString(), type);
|
return goodsDetail;
|
}
|
return null;
|
}
|
|
|
/**
|
* 精选低价包邮专区API
|
*
|
* @param minId
|
* @param pageSize
|
* @return
|
*/
|
public HDKGoodsListResultDTO getLowPricePinkageData(Integer minId, int pageSize, Integer typeNum) {
|
if (minId == null)
|
minId = 1;
|
|
List<ParamsKeyValue> params = new ArrayList<HaoDanKuApiUtil.ParamsKeyValue>();
|
params.add(new ParamsKeyValue("min_id", minId + ""));
|
params.add(new ParamsKeyValue("back", pageSize + ""));
|
params.add(new ParamsKeyValue("type", typeNum + ""));
|
String result = baseGetRequest("low_price_Pinkage_data", params);
|
|
JSONObject resultData = JSONObject.fromObject(result);
|
if (resultData.optInt("code") == 1) {
|
Integer newMinId = resultData.optInt("min_id");
|
Type type = new TypeToken<ArrayList<HDKGoodsDetail>>() {
|
}.getType();
|
List<HDKGoodsDetail> list = new Gson().fromJson(resultData.optJSONArray("data").toString(), type);
|
return new HDKGoodsListResultDTO(list, newMinId);
|
}
|
return null;
|
}
|
|
|
/**
|
* 高佣专场商品API
|
*
|
* @param minId
|
* @param pageSize
|
* @return
|
*/
|
public HDKGoodsListResultDTO getHighitems(Integer minId, int pageSize, Integer catId) {
|
if (minId == null)
|
minId = 1;
|
|
List<ParamsKeyValue> params = new ArrayList<HaoDanKuApiUtil.ParamsKeyValue>();
|
params.add(new ParamsKeyValue("min_id", minId + ""));
|
params.add(new ParamsKeyValue("back", pageSize + ""));
|
if (catId != null)
|
params.add(new ParamsKeyValue("cat_id", catId + ""));
|
|
String result = baseGetRequest("get_highitems", params);
|
|
JSONObject resultData = JSONObject.fromObject(result);
|
if (resultData.optInt("code") == 200) {
|
Integer newMinId = resultData.optInt("min_id");
|
Type type = new TypeToken<ArrayList<HDKGoodsDetail>>() {
|
}.getType();
|
List<HDKGoodsDetail> list = new Gson().fromJson(resultData.optJSONArray("data").toString(), type);
|
return new HDKGoodsListResultDTO(list, newMinId);
|
}
|
return null;
|
}
|
|
/**
|
* 获取拼多多实时热榜
|
*
|
* @param cid
|
* @param minId
|
* @return
|
*/
|
public HaoDanKuListResult getPDDHotGoods(Integer cid, Integer minId) {
|
List<ParamsKeyValue> params = new ArrayList<>();
|
params.add(new ParamsKeyValue("sort", 1 + ""));
|
if (cid != null)
|
params.add(new ParamsKeyValue("cid", cid + ""));
|
else
|
params.add(new ParamsKeyValue("cid", "0"));
|
|
if (minId != null)
|
params.add(new ParamsKeyValue("min_id", minId + ""));
|
|
String result = baseGetRequest("pdd_hot_rank", params);
|
System.out.println(result);
|
JSONObject resultJSON = JSONObject.fromObject(result);
|
if (resultJSON.optInt("code") == 200) {
|
Type type = new TypeToken<List<HaoDanKuPDDGoodsInfo>>() {
|
}.getType();
|
List<HaoDanKuPDDGoodsInfo> list = new GsonBuilder().serializeNulls().registerTypeAdapterFactory(new NullStringToEmptyAdapterFactory()).create().fromJson(resultJSON.optJSONArray("data").toString(), type);
|
int min_id = resultJSON.optInt("min_id");
|
HaoDanKuListResult listResult = new HaoDanKuListResult(list, min_id);
|
return listResult;
|
}
|
return null;
|
}
|
|
/**
|
* 获取京东实时热榜
|
*
|
* @param cid
|
* @param minId
|
* @return
|
*/
|
public HaoDanKuListResult getJDHotGoods(Integer cid, Integer minId) {
|
List<ParamsKeyValue> params = new ArrayList<>();
|
params.add(new ParamsKeyValue("sort", 1 + ""));
|
if (cid != null)
|
params.add(new ParamsKeyValue("cid", cid + ""));
|
else
|
params.add(new ParamsKeyValue("cid", "0"));
|
|
if (minId != null)
|
params.add(new ParamsKeyValue("min_id", minId + ""));
|
|
String result = baseGetRequest("jd_hot_rank", params);
|
System.out.println(result);
|
JSONObject resultJSON = JSONObject.fromObject(result);
|
if (resultJSON.optInt("code") == 200) {
|
Type type = new TypeToken<List<HaoDanKuJDGoodsInfo>>() {
|
}.getType();
|
List<HaoDanKuJDGoodsInfo> list = new Gson().fromJson(resultJSON.optJSONArray("data").toString(), type);
|
int min_id = resultJSON.optInt("min_id");
|
HaoDanKuListResult listResult = new HaoDanKuListResult(list, min_id);
|
return listResult;
|
}
|
return null;
|
}
|
|
/**
|
* 获取淘宝实时热榜( https://www.haodanku.com/openapi/api_detail?id=19)
|
*
|
* @param cid
|
* @param minId
|
* @return
|
*/
|
public HaoDanKuListResult getTBHotGoods(Integer cid, Integer minId) {
|
List<ParamsKeyValue> params = new ArrayList<>();
|
params.add(new ParamsKeyValue("sale_type", 1 + ""));
|
if (cid != null)
|
params.add(new ParamsKeyValue("cid", cid + ""));
|
else
|
params.add(new ParamsKeyValue("cid", "0"));
|
params.add(new ParamsKeyValue("back", "20"));
|
|
|
if (minId != null)
|
params.add(new ParamsKeyValue("min_id", minId + ""));
|
|
String result = baseGetRequest("sales_list", params);
|
System.out.println(result);
|
JSONObject resultJSON = JSONObject.fromObject(result);
|
if (resultJSON.optInt("code") == 1) {
|
Type type = new TypeToken<List<HDKGoodsDetail>>() {
|
}.getType();
|
List<HDKGoodsDetail> list = new Gson().fromJson(resultJSON.optJSONArray("data").toString(), type);
|
int min_id = resultJSON.optInt("min_id");
|
HaoDanKuListResult listResult = new HaoDanKuListResult(list, min_id);
|
return listResult;
|
}
|
return null;
|
}
|
|
|
/**
|
* @return void
|
* @author hxh
|
* @description 获取淘特商品列表
|
* @date 10:37 2021/12/13
|
* @param: type 商品类型:默认1全量商品、2定向商品、3精选榜单、4品牌补贴、5工厂直供
|
* @param: sort 排序:0综合排序、1券后价倒序、2佣金比倒序、3券后价升序
|
* @param: startPrice 到手价筛选:起始价
|
* @param: endPrice 到手价筛选:结束价
|
* @param: startRate 佣金比率筛选:起始价
|
* @param: minId
|
**/
|
public HaoDanKuListResult getTaoTeGoodsList(Integer type, Integer sort, BigDecimal startPrice, BigDecimal endPrice, BigDecimal startRate, Integer minId) {
|
|
List<ParamsKeyValue> params = new ArrayList<>();
|
params.add(new ParamsKeyValue("sale_type", 1 + ""));
|
if (type != null)
|
params.add(new ParamsKeyValue("type", type + ""));
|
if (sort != null)
|
params.add(new ParamsKeyValue("sort", sort + ""));
|
if (startPrice != null)
|
params.add(new ParamsKeyValue("start_price", startPrice + ""));
|
if (endPrice != null)
|
params.add(new ParamsKeyValue("end_price", endPrice + ""));
|
if (startRate != null)
|
params.add(new ParamsKeyValue("start_rate", startRate + ""));
|
if (minId != null)
|
params.add(new ParamsKeyValue("min_id", minId + ""));
|
String result = baseGetRequest("taote_item_list", params);
|
System.out.println(result);
|
JSONObject resultJSON = JSONObject.fromObject(result);
|
if (resultJSON.optInt("code") == 200) {
|
Type gsonType = new TypeToken<List<HDKTaoteGoods>>() {
|
}.getType();
|
List<HDKTaoteGoods> list = new Gson().fromJson(resultJSON.optJSONArray("data").toString(), gsonType);
|
int min_id = resultJSON.optInt("min_id");
|
HaoDanKuListResult listResult = new HaoDanKuListResult<>(list, min_id);
|
return listResult;
|
}
|
return null;
|
}
|
|
|
public class NullStringToEmptyAdapterFactory<T> implements TypeAdapterFactory {
|
@SuppressWarnings("unchecked")
|
public <T> TypeAdapter<T> create(Gson gson, TypeToken<T> type) {
|
Class<T> rawType = (Class<T>) type.getRawType();
|
if (rawType != String.class) {
|
return null;
|
}
|
return (TypeAdapter<T>) new StringNullAdapter();
|
}
|
}
|
|
public class StringNullAdapter extends TypeAdapter<String> {
|
@Override
|
public String read(JsonReader reader) throws IOException {
|
if (reader.peek() == JsonToken.NULL) {
|
reader.nextNull();
|
return "";
|
}
|
return reader.nextString();
|
}
|
|
@Override
|
public void write(JsonWriter writer, String value) throws IOException {
|
if (value == null) {
|
writer.nullValue();
|
return;
|
}
|
writer.value(value);
|
}
|
}
|
|
|
public static void main(String[] args) {
|
HaoDanKuApiUtil.getInstance().getTaoTeGoodsList(1, null, null, null, null, null);
|
}
|
}
|