【发布时间】:2011-05-27 19:03:31
【问题描述】:
我有一个 JSON 字符串,我只是想访问它的不同属性并将它们存储在 Java 变量中。但是,我不断收到以下代码的异常:
private JSONObject jObj;
private String jString;
//...
jString = result; //this is my JSON string passed from another activity
try {
jObj = new JSONObject(jString);
//int eventID = jObj.getInt("eventID");
} catch (JSONException e) {
Toast.makeText(searchResultsActivity.this, "Search results failed!", Toast.LENGTH_SHORT).show();
finish();
}
是的,我有所需的导入。我已经单独显示了 jString 以确认它是有效的 JSON。我有点迷茫,因为这似乎是我需要做的最基本的事情。感谢您的帮助。
编辑 - 这是一个示例 JSON 字符串:
[{"eventID":"47","event_name":"test","event_address":"Test","event_duration":"3","event_date":"20110527","event_time":" 1347","event_description":"Test","num_attending":"1"}]
这个字符串是通过一个 PHP 脚本接收的,我在其中 echo json_encode($array),其中 $array 是创建这个 JSON 响应的关联数组。
我得到的例外是:
“org.json.JSONException: org.json.JSONArray 类型的值[//高于 JSON 字符串//] 无法转换为 JSONObject”
【问题讨论】:
-
什么是json异常,请问json字符串是什么?你在做什么应该工作。
-
我用字符串和错误编辑了我的帖子。哦,我需要导入一些 JSONArray 的东西吗? Eclipse 没有告诉我 =(
-
我同意泰勒的观点。如果您正在捕获 JSONException,则 jString 不是有效的 JSON 字符串。
-
Aww 废话,好的,我想出了如何让它工作。基本上我只是将类型更改为 JSONArray(并导入 JSONArray),一切正常。出于好奇,这是为什么呢?
-
因为你拉的是一个数组,而不是一个对象。
标签: java android json exception