android - 需要帮助使用 gson 解析 json 文件

标签 android gson

编辑:我更改了 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": "----"
    }
]

最佳答案

这很简单,下面是一些如何加载和读取节点的代码。它将帮助您了解如何查询您的数据。

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);

//您的 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, ....));
}

//如何读取值和查询对象的例子

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();

关于android - 需要帮助使用 gson 解析 json 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11874954/

相关文章:

android - android 中的包是否永久保存 Activity 状态?

android - 如何在应用程序运行时持续检查互联网连接

java - 合并 Realm 对象和 Gson 对象

java - 用正则表达式替换部分字符串

java - 当 JSON 没有 "Name attribute"时如何使用 GSON ?

android - 如何在 Android 设备上不使用终端访问 Android 的数据/数据文件

android - 滚动布局内的 ScrollView ?

java - 使用不同关键字将 JSON 映射到 Java 对象

java - 如何使用 Java (Bing-Search-API) 从 JSON 访问嵌套元素

javascript - 使用ZXing条码扫描仪将网页上的条码读取到表格中