android - 使用 JsonObject 从资源中读取 JSON 文件
问题描述
我想将 Resources 中的 JSONfile 分配给 JsonObject 的一个实例并解析它。请指导如何?
主要活动:
boolean bool = true;
boolean bool2=true;
String s = "";
input = getResources().openRawResource(R.raw.infojson);
JsonReader reader = new JsonReader(new InputStreamReader(input));
reader.beginObject();
while (bool==true){
String sv ="";
sv=reader.nextName();
s +=sv;
if(sv.equals("id")| sv.equals("num")){
s +=" : " ;
s+=(String.valueOf(reader.nextInt()));
}
if (sv.equals("name")){
s +=" : " ;
s+=reader.nextString();
}
s+="\t";
bool = reader.hasNext();
}
JSON 内容:
{
"id":"1","name":"E1","num":1111,
"My":{"id":"2","name":"E2","num":2222}
}
解决方案
创建一个模型来解析您的json
如下所示:
class ResourseResponse {
private String id;
private String name;
private String num;
//getter-setter
}
然后解析你的json
fromJsonReader
并创建你的模型。
JsonReader reader = new JsonReader(new InputStreamReader(input));
Gson gson = new Gson();
if (reader.peek() != JsonToken.BEGIN_OBJECT) {
reader.beginArray();
while (reader.hasNext()) {
ResourseResponse response = gson.fromJson(reader, ResourseResponse.class);
//Add to list
}
reader.endArray();
} else {
ResourseResponse message = gson.fromJson(reader, ResourseResponse.class);
}
推荐阅读
- html - 使用 @React-Google-Maps/api 将 HTML 渲染到 Infowindow
- c# - 如何从 xctk xceed 向导中的按钮修改样式?
- python - 在自定义损失 mse 函数中添加 if 条件
- apache-kafka - Cassandra Sink 连接器:尝试创建/查找主题“_confluent-command”时出错
- php - 抑制特定类型的 PhpStorm 检查
- .net-core - 在 Microsoft Bot framework V4 中从 Bot 向用户发送 Excel 文件
- javascript - 如何使用 MS Fluent UI 进行国际化/本地化
- java - 供应商接受方法中的Java泛型不兼容类型
- asp.net - ASP.NET Gridview - bootstrap 4 隐藏列
- powershell - 使用powershell增加包号