服务方法返回response()->json($response)
端点的响应是
{"units":[{"id":1,"unit_name":"Carton","created_at":"2023-04-28T16:25:24.000000Z","updated_at":"2023-04-28T16:25:24.000000Z"},{"id":2,"unit_name":"Box","created_at":"2023-04-28T16:25:31.000000Z","updated_at":"2023-04-28T16:25:31.000000Z"},{"id":3,"unit_name":"Kg","created_at":"2023-04-28T16:25:39.000000Z","updated_at":"2023-04-28T16:25:39.000000Z"}],"loc":"Loc","success":1}
我想在Android Java中将此JSON字符串解析为对象。下面是我的代码:我无法获取UnitRes对象
Gson gson = new Gson();
UnitRes res = gson.fromJson(response, new TypeToken<UnitRes>(){}.getType());
请问这里有什么问题吗??
public class UnitRes{
private List<Unit> units;
private int success;
private String loc;
}
public class Unit{
private int id;
private String unit_name;
private String created_at;
private String updated_at;
//getters & setters
}
2条答案
按热度按时间bvn4nwqk1#
我不确定您当前代码中的
response
,我假设它是JSON文件的内容。您可以使用gson.fromJson(response, UnitRes.class)
来解析文件,示例如下:注意:我使用的GSON版本:
gxwragnw2#
您的代码似乎基本正确,但有几个问题可能导致问题。
首先,确保
UnitRes
和Unit
类的字段具有适当的getter和setter。Gson需要这些方法来正确地序列化和反序列化。接下来,确保您已经从Gson库导入了必要的类。以下是需要包含在Java文件开头的import语句:
最后,在使用
fromJson()
时,需要将JSON字符串作为Reader
对象传递。在本例中,您可以使用StringReader
将JSON字符串转换为Reader
:通过这些更改,您的代码应该能够成功地将JSON字符串解析为
UnitRes
对象。记住在UnitRes
和Unit
类中添加适当的getter和setter来访问解析后的数据。此外,我注意到
UnitRes
类缺少units
、success
和loc
字段的getter和setter。请确保也添加它们以正确访问这些值。