第一次写博客,主要是做笔记和分享,希望和我遇到同样问题的人能快速解决不必花费更多时间和精力
我们通过Android的网络请求,请求服务器返回的字符串用GSON解析的代码为:
bean results = new Gson().fromJson(content, bean.class);
这我们都知道,我就提出一些我遇到解析的问题来:
1.能解析,但获取的值为null
这我们就得看json字符串了,假设json字符串为:{"result":1},
这是最简单的 但是我们也用GSON解析,并创建实体类 :private int Result;
这样的的话就解释了为什么获取为null了,因为这个result在bean中定义的不与json字符串定义的属性相同,所以必须把 Result写成小写
或者:
在 哪个bean中 写入:@SerializedName("result") 要问为啥 我也不知道。
@SerializedName("result")//设置
private int Result;
2.解析错误,直接报错 ,不抛异常
这可能是因为传的json中有 date转成long的字符,在用这个代码解析 而在bean中却指定为date则是会出现这种情况的,
我们则需把date类型换成long类型即可。
附加:long转日期的string类型
//Date date = new Date(long值);
String类型和int类型可以通过强转得到long值,必须得为long值 string类型和int类型不行
//String str = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(date); 这个格式是必须得,假如月的部分MM为小写则实际输出为00,如果小时HH写为hh则可能为00或者12
//String str = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(date); 这个格式是必须得,假如月的部分MM为小写则实际输出为00,如果小时HH写为hh则可能为00或者12
注:我只是做做笔记