
这是我使用的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;
编译器会报错
本人菜鸟,如有不对,敬请指出
本文探讨了在Android中使用Gson库进行Json反序列化的细节,包括fromJson方法的基本用法,处理{}和[]类型的Json数据。在处理嵌套Json对象时遇到的问题,如预期的String实际为BEGIN_OBJECT错误,以及解决办法。还提到了@SerializedName注解在字段映射中的作用,以及在调试过程中遇到的字段识别问题。

被折叠的 条评论
为什么被折叠?



