如何在android中获取这些JSON值?
{
"one": [
{
"ID": "100",
"Name": "Hundres"
}
],
"two": [
{
"ID": "200",
"Name": "two hundred"
}
],
"success": 1
}
我尝试了以下但是它显示长度为0.我无法获得数组值。
JSONObject json = jParser.getJSONFromUrl(url_new);
try {
getcast = json.getJSONArray("one");
int length = getcast.length();
} catch (JSONException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
答案 0 :(得分:0)
您可以在代码中使用以下行
String str = jParser.getJSONFromUrl(url).tostring();
以下是为我工作的Code Snippet
String str = "{"
+ "\"one\": ["
+ "{"
+ "\"ID\": \"100\","
+ "\"Name\": \"Hundres\""
+ "}"
+ "],"
+ "\"two\": ["
+ " {"
+ " \"ID\": \"200\","
+ " \"Name\": \"two hundred\""
+ " }"
+ "],"
+ "\"success\": 1"
+ "}";
try {
JSONObject obj = new JSONObject(str);
JSONArray arr = obj.getJSONArray("one");
int n = arr.length();
String id;
String name;
for (int i = 0; i < n; ++i) {
JSONObject person = arr.getJSONObject(i);
id = person.getString("ID");
name = person.getString("Name");
}
arr = obj.getJSONArray("two");
n = arr.length();
for (int i = 0; i < n; ++i) {
JSONObject person = arr.getJSONObject(i);
id = person.getString("ID");
name = person.getString("Name");
}
int success = obj.getInt("success");
}
catch(Exception ex) {
System.out.println(ex);
}
答案 1 :(得分:-2)
我猜失败在于第一行。 url_new有什么价值? 如果您可以以String的形式从上面获取Json,我建议从构造函数JSONObject(String source)构建JSONObject json,如下所示:
JSONObject json = new JSONObject(json_string);
这就是我用来从API调用中提取JSON的方法。
参考:http://www.json.org/javadoc/org/json/JSONObject.html 你可以在这里看到所有构造函数。