Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/320.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 整数不能转换为JSONObject_Java_Android_Json - Fatal编程技术网

Java 整数不能转换为JSONObject

Java 整数不能转换为JSONObject,java,android,json,Java,Android,Json,我目前正在异步任务中使用WikipediaAPI中的查询搜索来获取数据。一切正常,但wikipedia查询返回一个数字作为json中的键,我无法通过编程将其转换为字符串 维基百科查询url: 异步任务: Log.i(Config.TAG, result); String query = data.getString("query"); JSONObject pagesObj = new JSONObject(query); String pages = pagesObj.getString("p

我目前正在异步任务中使用WikipediaAPI中的查询搜索来获取数据。一切正常,但wikipedia查询返回一个数字作为json中的键,我无法通过编程将其转换为字符串

维基百科查询url:

异步任务:

Log.i(Config.TAG, result);
String query = data.getString("query");
JSONObject pagesObj = new JSONObject(query);
String pages = pagesObj.getString("pages");
JSONObject page = new JSONObject(pages);
String pageID = (String) page.names().get(0);
String message = null;
String title = null;
    if (Integer.parseInt(pageID) == -1){
        title = "No User found";
        message = "It seems that this User does not have a Wikipedia Article yet.";
    } else {
        JSONObject part = new JSONObject(pageID);
        title = part.getString("title");
        message = part.getString("extract");
    }
错误日志:

05-09 16:38:10.650 25295-25323/org.mypackage.name W/System.err:     at org.json.JSON.typeMismatch(JSON.java:111)
    at org.json.JSONObject.<init>(JSONObject.java:163)
    at org.json.JSONObject.<init>(JSONObject.java:176)
05-09 16:38:10.651 25295-25323/org.mypackage.name W/System.err:     at org.mypackage.name.classes.GetContent.doInBackground(GetContent.java:117)
    at org.mypackage.name.classes.GetContent.doInBackground(GetContent.java:26)
    at android.os.AsyncTask$2.call(AsyncTask.java:333)
    at java.util.concurrent.FutureTask.run(FutureTask.java:266)
05-09 16:38:10.652 25295-25323/org.mypackage.name W/System.err:     at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:245)
05-09 16:38:10.653 25295-25323/org.mypackage.name W/System.err:     at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1162)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:636)
    at java.lang.Thread.run(Thread.java:764)
05-09 16:38:10.650 25295-25323/org.mypackage.name W/System.err:at org.json.json.typemissmatch(json.java:111)
位于org.json.JSONObject(JSONObject.java:163)
位于org.json.JSONObject(JSONObject.java:176)
05-09 16:38:10.65125295-25323/org.mypackage.name W/System.err:at org.mypackage.name.classes.GetContent.doInBackground(GetContent.java:117)
位于org.mypackage.name.classes.GetContent.doInBackground(GetContent.java:26)
位于android.os.AsyncTask$2.call(AsyncTask.java:333)
在java.util.concurrent.FutureTask.run(FutureTask.java:266)处
05-09 16:38:10.6525295-25323/org.mypackage.name W/System.err:at-android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:245)
05-09 16:38:10.653 25295-25323/org.mypackage.name W/System.err:at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1162)
位于java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:636)
运行(Thread.java:764)
有没有办法将给定的整数转换为字符串,或者我的代码中是否有错误


提前谢谢你

也许更好的方法是使用jackson? 诸如此类

ObjectMapper mapper = new ObjectMapper();
JsonNode node = mapper.readTree(data);
title = node.get("query").get("pages").get(0).get("title");
message = node.get("query").get("pages").get(0).get("message")

谢谢比我想象的容易多了。我只是需要用我的pageID替换代码中的.get(0)