Gson解析List为空应如何解决

前面是我遇到的问题,后面是解决方法

服务器端发送数据:

<span style="font-size:18px;">AnliDataDao anliDao=new AnliDataDao();
			List<AnliData> anlilist;
			String jsonString="";
			try {
				anlilist = anliDao.queryAnli();//得到了一个Anli类的List数组 
				Gson gson = new Gson();
				 jsonString = gson.toJson(anlilist);
			} catch (Exception e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
</span>
客户端接收数据,对gson数据解析:
<span style="font-size:18px;">ype type = new TypeToken<List<AnliData>>() {
				}.getType();
				Gson gson =  new Gson();
				list = gson.fromJson(result, type);
for(int i=0;i<list.size();i++){
					System.out.println("------------这是HttpUtil中的Gson解析-------------------------------------\n这个是图片地址:"+list.get(i).getMyImageUrl()+"这个是文本信息\n"+list.get(i).getMyTvContent());
				}
</span>

按理说,我们客户端在type中的数据类型和服务器端发送的数据类型是一样的,但是解析的结果为null;这难道是Gson解析不了List的数组?这让我头疼了许久;


后来发现了一种更好的解决方法:


对你所要传的数据包装在一个List类中,你怎么也是要发送一个List数组,就不如直接把你要发送的数据直接封装在一个List类中:

import java.util.List;

public class AnliDataList {
	List<AnliData> anlilist;

	public List<AnliData> getAnlilist() {
		return anlilist;
	}

	public void setAnlilist(List<AnliData> anlilist) {
		this.anlilist = anlilist;
	}
	
	
}


这样一来我们直接按照这个类解析就好了:


public class demo {

	public static void main(String args[]) {

		

		AnliDataDao anliDao = new AnliDataDao();//这是为了从数据库中拿到数据
		AnliDataList anlidatalist=new AnliDataList();//实例化一个对AnliData的封住类(也就是List<AnliData>)
		String jsonString = "";
		
		try {
			anlidatalist.setAnlilist(anliDao.queryTextView()); //这就用我们写的set方法,将得到的list数组放到我们的封装List类中;
			Gson gson = new Gson();
			jsonString = gson.toJson(anlidatalist);
			// jsonString = createJsonString("anlitest", anlilist);
		} catch (Exception e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}

		
		Type type = new TypeToken<AnliDataList>() {
		}.getType();
		Gson gson =  new Gson();
	AnliDataList	list = gson.fromJson(jsonString, type);
for(int i=0;i<list.getAnlilist().size();i++){
//这样我们就拿到数据了;
	System.out.println(list.getAnlilist().get(i).getMyImageUrl()+"\n"+list.getAnlilist().get(i).getMyTvContent());
	}

	}

}

Gson解析List为空应如何解决_第1张图片


你可能感兴趣的:(gson解析,Gson解析List)