Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/195.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
Android 找到json对象的不同内容有什么困难吗?_Android_Json - Fatal编程技术网

Android 找到json对象的不同内容有什么困难吗?

Android 找到json对象的不同内容有什么困难吗?,android,json,Android,Json,有没有办法确定json对象的不同内容 它是否包含json数组?如果是这样,那么json数组中是否有json对象?当然可以。 查看JSONObject参考: 您可以使用keys()iterator来发现当前节点中可用的元素 然后,您可以使用instanceof操作符检查某个节点是JSONArray还是String还是其他什么 public void analyzeJSON(String jsonString) { JSONTokener tok = new JSONTokener(jso

有没有办法确定json对象的不同内容


它是否包含json数组?如果是这样,那么json数组中是否有json对象?

当然可以。 查看
JSONObject
参考:

您可以使用
keys()
iterator来发现当前节点中可用的元素

然后,您可以使用
instanceof
操作符检查某个节点是
JSONArray
还是
String
还是其他什么

public void analyzeJSON(String jsonString) {
    JSONTokener tok = new JSONTokener(jsonString);
    while(tok.more()) {
        try {
            Object item = tok.nextValue();
            if (item instanceof JSONObject) {
                // JSON Object
                analyzeJSON(item.toString());
            } else if (item instanceof JSONArray) {
                // JSON Array
                JSONArray array = (JSONArray) item;
                for (int i = 0; i < array.length(); i++) {
                    Object subItem = array.get(i);
                    if (subItem instanceof JSONObject) {
                        // JSON Object
                        analyzeJSON(item.toString());
                    } else if (subItem instanceof JSONArray) {
                        // JSON Array inside array
                    } else {
                        // Something
                    }
                }
            }
        } catch (JSONException e) {
            e.printStackTrace();
        }
    }
}
public void analyzeJSON(字符串jsonString){
JSONTokener tok=新的JSONTokener(jsonString);
while(tok.more()){
试一试{
objectitem=tok.nextValue();
if(JSONObject的项目实例){
//JSON对象
analyzeJSON(item.toString());
}else if(JSONArray的项目实例){
//JSON数组
JSONArray数组=(JSONArray)项;
对于(int i=0;i

希望这能有所帮助。

您希望采用什么样的其他方式来获取答案,但这只返回实际的json对象,而不返回其中的任何内容。您可以递归编写此函数并从中提取项目。您能给我一个小示例,说明如何使用aswin,thanks@user:我认为你应该学习基本的编程概念。Aswin给你写了一个完整的例子,如果你不理解,那么你肯定想理解递归。Dusan他写的例子在我看来像是一个递归,这就是为什么我问我是否可以有另一个例子。迭代器在for循环中完成了这项工作。感谢所有帮助过你的人。这只是带回了一个对象,当有两个对象和一个数组时