Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/330.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 使用Android本机类进行JSON解析_Java_Android_Json_Parsing - Fatal编程技术网

Java 使用Android本机类进行JSON解析

Java 使用Android本机类进行JSON解析,java,android,json,parsing,Java,Android,Json,Parsing,我想使用原生Android org.JSON解析JSON文件 JSON很复杂,没有预定义的结构。它可以包含一个键的多个嵌套级别和另一个键的一个值。我可以用任何类型的结构定义任意数量的键值对 我需要把这个转换成字典。我不能使用任何第三方库,如Jackson或Gson(出于我不想在此讨论的原因)。我知道使用这些库提供的公共API可以很容易地完成这项工作 如果我想自己做这件事(也许使用org.json),最好的方法是什么?我是否需要读取每个值,检查它是一个JSONArray/JSONObject还是一

我想使用原生Android org.JSON解析JSON文件

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

我需要把这个转换成字典。我不能使用任何第三方库,如Jackson或Gson(出于我不想在此讨论的原因)。我知道使用这些库提供的公共API可以很容易地完成这项工作

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


感谢您的帮助。谢谢

以下是一个让您开始学习的片段:

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