Java 指向您在Android Studio中创建的Json文件
练习JSON到JAVA对象的技巧,遇到问题,试图指向我在android studio中创建的JSON文件,而不是完整地写出JSON数据。这是我的密码。多谢各位 试图扭转这种局面:Java 指向您在Android Studio中创建的Json文件,java,android,json,gson,Java,Android,Json,Gson,练习JSON到JAVA对象的技巧,遇到问题,试图指向我在android studio中创建的JSON文件,而不是完整地写出JSON数据。这是我的密码。多谢各位 试图扭转这种局面: System.out.println( gson.fromJson("{\"draw_date\":\"2016-10-07T00:00:00.000\",\"mega_ball\":\"14\",\"multiplier\":\"02\",\"winning_numbers\":\"24 3
System.out.println(
gson.fromJson("{\"draw_date\":\"2016-10-07T00:00:00.000\",\"mega_ball\":\"14\",\"multiplier\":\"02\",\"winning_numbers\":\"24 37 42 50 65\"}", MegaPOJO.class));
为此:
System.out.println(gson.fromJson(jsonFile, MegaPOJO.class));
如果要执行此操作,请将json文件放在原始资源文件夹中 我创建了一个ResourceManager类来获取内容
public class ResourceManager {
private final Context context;
private final Resources resources;
private static ResourceManager resourceManager;
private ResourceManager(Context context) {
this.context = context;
this.resources = context.getResources();
}
public static ResourceManager getResourceManager(Context context) {
if (resourceManager == null) {
resourceManager = new ResourceManager(context);
}
return resourceManager;
}
public String getJSONFromRawResources(String jsonFilename) {
int resourceID = resources.getIdentifier(jsonFilename, "raw", context.getPackageName());
InputStream inputStream = resources.openRawResource(resourceID);
try {
BufferedReader reader = new BufferedReader(new InputStreamReader(inputStream));
StringBuilder jsonStringStringBuilder = new StringBuilder();
String line;
while ((line = reader.readLine()) != null) {
jsonStringStringBuilder.append(line);
}
return jsonStringStringBuilder.toString();
} catch (IOException e) {
e.printStackTrace();
return null;
}
}
}
您可以通过以下方式访问此类:
ResourceManager resourceManager = ResourceManager.getResourceManager(this);
String jsonResult = resourceManager.getJSONFromRawResources("jsonfile");
然后您可以使用:
System.out.println(gson.fromJson(jsonResult, MegaPOJO.class));
我忘了提到,如果您希望此代码正常工作,请将/raw文件夹中的jsonfile命名为“jsonfile.json”。或者更改resourceManager.getJSONFromRawResources(“jsonfile”)方法中的字符串;