java - 陷入解析 JSON 的困境

标签 java android json

我在解析 JSON 响应时遇到了困难,通常我习惯用 Java 解析 JSON,但这次我真的崩溃了。有人可以解释一下出了什么问题以及如何解决它吗?

JSON

[{
    "0": "1",
    "id": "1",
    "1": null,
    "name": null,
    "2": "tim",
    "username": "tim",
    "3": "tim@billstrom.me",
    "email_address": "tim@billstrom.me",
    "4": "http:\/\/graph.facebook.com\/timbillstrom\/picture?width=500&height=500",
    "img": "http:\/\/graph.facebook.com\/timbillstrom\/picture?width=500&height=500"
}]

JAVA

JSONArray Jarray = new JSONArray(resJson);
String Jobject = Jarray.getJSONObject(0).getString("img");

LOGCAT

09-15 20:15:36.637: W/System.err(9156): org.json.JSONException: Index 0 out of range [0..0)
09-15 20:15:36.677: W/System.err(9156):     at org.json.JSONArray.get(JSONArray.java:263)
09-15 20:15:36.677: W/System.err(9156):     at org.json.JSONArray.getJSONObject(JSONArray.java:480)
09-15 20:15:36.677: W/System.err(9156):     at com.christian.omegle.MainActivity$DownloadWebPageTask.onPostExecute(MainActivity.java:205)
09-15 20:15:36.687: W/System.err(9156):     at com.christian.omegle.MainActivity$DownloadWebPageTask.onPostExecute(MainActivity.java:1)
09-15 20:15:36.687: W/System.err(9156):     at android.os.AsyncTask.finish(AsyncTask.java:631)
09-15 20:15:36.687: W/System.err(9156):     at android.os.AsyncTask.access$600(AsyncTask.java:177)
09-15 20:15:36.687: W/System.err(9156):     at android.os.AsyncTask$InternalHandler.handleMessage(AsyncTask.java:644)
09-15 20:15:36.687: W/System.err(9156):     at android.os.Handler.dispatchMessage(Handler.java:99)
09-15 20:15:36.687: W/System.err(9156):     at android.os.Looper.loop(Looper.java:213)
09-15 20:15:36.687: W/System.err(9156):     at android.app.ActivityThread.main(ActivityThread.java:4787)
09-15 20:15:36.687: W/System.err(9156):     at java.lang.reflect.Method.invokeNative(Native Method)
09-15 20:15:36.687: W/System.err(9156):     at java.lang.reflect.Method.invoke(Method.java:511)
09-15 20:15:36.687: W/System.err(9156):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:789)
09-15 20:15:36.687: W/System.err(9156):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:556)
09-15 20:15:36.687: W/System.err(9156):     at dalvik.system.NativeStart.main(Native Method)

最佳答案

尝试找出差异:

import org.json.JSONArray;
import org.json.JSONException;


public class JsonTest {

/**
 * @param args
 * @throws JSONException 
 */
public static void main(String[] args) throws JSONException {
    String resJson  = "[{\r\n" + 
            "    \"0\": \"1\",\r\n" + 
            "    \"id\": \"1\",\r\n" + 
            "    \"1\": null,\r\n" + 
            "    \"name\": null,\r\n" + 
            "    \"2\": \"tim\",\r\n" + 
            "    \"username\": \"tim\",\r\n" + 
            "    \"3\": \"tim@billstrom.me\",\r\n" + 
            "    \"email_address\": \"tim@billstrom.me\",\r\n" + 
            "    \"4\": \"http:\\/\\/graph.facebook.com\\/timbillstrom\\/picture?width=500&height=500\",\r\n" + 
            "    \"img\": \"http:\\/\\/graph.facebook.com\\/timbillstrom\\/picture?width=500&height=500\"\r\n" + 
            "}]";

    JSONArray Jarray = new JSONArray(resJson);
    String Jobject = Jarray.getJSONObject(0).getString("img");

    System.out.println(Jobject);
}
}

输出:http://graph.facebook.com/timbillstrom/picture?width=500&height=500

关于java - 陷入解析 JSON 的困境,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18815745/

相关文章:

java - 带有 AWTEventListener 的全局事件监听器以及如何从中提取 MouseEvent

java - performClick() 的 NullPointerException

java - @JsonProperty 未按预期工作

java - 找不到 R.layout - 应用名称。只有安卓布局

ios - 在Swift中将复杂的JSON保存到核心数据

java - 检查行是否包含单词

android - 读取文件中的上一行

java - 在同一应用程序中使用 Amazon map 和 Google map

jQuery 自动完成 - data.split 不是函数

java - 如何使用 Java 将 JSON 数据发布到服务器