JSON 使用 Android 本机解析 类

JSON parsing using Android native classes

我想使用本机 Android org.json 解析 JSON 文件。

JSON 很复杂,没有预先定义的结构。它可以包含多个键的嵌套级别,而另一个键只包含一个值。我可以用任何类型的结构定义任意数量的键值对。

我需要将其转换为字典。我不能使用任何第三方库,如 Jackson 或 Gson(出于我不想在这里讨论的原因)。我知道使用这些库提供的 public API 可以很容易地完成。

如果我想自己做(也许使用 org.json),最好的方法是什么?我是否需要读取每个值,检查它是 JSONArray/JSONObject 还是一个值,然后执行递归?或者我可以只使用反射读取 JSONObject class 中的地图并使用它吗?

感谢任何帮助。谢谢!

这里有一个片段可以帮助您入门:

Iterator<?> keys = jsonData.keys();
while( keys.hasNext() ){
     String key = (String)keys.next();
     String value =  jsonData.getString(key);
}

您需要检查数据是对象还是数组,方法如下:

if (item instanceof JSONArray)
{
    JSONArray jsonArray = (JSONArray) item;
}
else
{
    JSONObject jsonObject = (JSONObject) item;
}

然后使用递归解析嵌套对象。

祝你好运!