这是我使用的Json数据,这里乱码没有关系,这是编码问题,Android模拟器可以识别
使用Gson的fromJson基本用法 gson.fromJson(String str,类.class) 对应 {} JSONObject 键值对(Key-value)集合 最好不要有 {key:{}}这种类型
或者 gson.fromJson(String str,new TypeToken<List<类>>(){}.getType()); 对应 [{},{}] JSONArray Json的数组
我尝试先读出yesterday对应的值和forecast对应的值,在按照类使用fromJson来读取
所以我先定义了一个类包含date,high等等
另一个类包含yesterday,city,forecast等等来读取
但是定义yesterday 类型为String 会报错Expected String but was BEGIN_OBJECT at line 1 column 2 path .$yesterday
后来我定义了JSONObject,不会报错了,但是无法读取,地址为空
定义类里套类我没实验过,不知道
我就结合JSONObject jsonData = jsonObject.getJSONObject(str); 和fromJson一起使用
是可以的
注意到yesterday里的风向和风力 与 forecast里的风力和风向 命名不同
可以使用@SerializedName
@SerializedName("fx") private String fengxiang;
只会fx的被识取,二fengxiang未识取,为null 我在debug时字符串中确定有fengxiang,但无法识别,不知道为什么
@SerializedName(value = "fengxiang", alternate = {"fx"}) private String fengxiang;
这样就可以了
@SerializedName(value = "fengxiang", alternate = {"fx","fengxiang"}) private String fengxiang;
编译器会报错
本人菜鸟,如有不对,敬请指出