编辑:我已经改变了json文件的样式,使其更简单,因为我无法使用旧版本.我需要能够在java中创建一个目标数组,其中数组中的每个元素的名称都是Target_Name的值.我还需要能够将具有不同对象名称的重复目标名称合并在一起.所以基本上我想要一个目标数组,并且在每个元素中我想拥有一个包含Type,Pin_number和功能的对象数组.
我知道我可能必须在目标名称和其他所有内容的变量中创建一个目标列表类.我之前尝试过类似的东西,但我很难弄清楚它是如何工作的.
{
"Targets": [
{
"Target_Name": "----",
"Object_Name": "----",
"Type": "----",
"Pin_Number": "----",
"Capabilities": "----"
},
{
"Target_Name": "----",
"Object_Name": "----",
"Type": "----",
"Pin_Number": "----",
"Capabilities": "----"
},
{
"Target_Name": "----",
"Object_Name": "----",
"Type": "----",
"Pin_Number": "----",
"Capabilities": "----"
},
{
"Target_Name": "----",
"Object_Name": "----",
"Type": "----",
"Pin_Number": "----",
"Capabilities": "----"
}
]
Run Code Online (Sandbox Code Playgroud)
}
这非常简单,下面是一些如何加载和读取节点的代码。它将帮助您了解如何查询数据。
Reader reader = null;
InputStream stream = context.getResources()
.openRawResource(R.raw.json_file);
reader = new BufferedReader(new InputStreamReader(stream), 8092);
// parse json
JsonParser parser = new JsonParser();
JsonObject jsonObj = (JsonObject)parser.parse(reader);
Run Code Online (Sandbox Code Playgroud)
// 你的 json 解析将如下所示
JsonArray targets= jsonObj.getAsJsonArray("Targets");
List<Target> targetList = new ArrayList<Target>();
for (JsonElement target: targets) {
JsonObject targetObject = target.getAsJsonObject();
String targetName= targetObject.get("Target_Name").getAsString();
....//get the rest
// create target object
targetList.add(new Target(targetName, ....));
}
Run Code Online (Sandbox Code Playgroud)
// 如何读取值和查询对象的示例
for (Entry<String, JsonElement> entry : rootElem.entrySet())
{
int key = Integer.parseInt(entry.getKey());
JsonObject jsonObject = entry.getValue().getAsJsonObject();
}
// get integer element
int key = Integer.parseInt(entry.getKey());
// get child object
JsonObject jsonObject = entry.getValue().getAsJsonObject();
// get string element
String title = jsonObject.get("Object_Name").getAsString();
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
1147 次 |
最近记录: |