看我的评论。当以 android.jar身份运行时,您需要包含完整的org.json库。仅包含要针对其进行编译的存根。
__
此外,您还必须
}在JSON数据中删除额外的两个实例
longitude。
private final static String JSON_DATA = "{" + " "geodata": [" + " {" + " "id": "1"," + " "name": "Julie Sherman"," + " "gender" : "female"," + " "latitude" : "37.33774833333334"," + " "longitude" : "-121.88670166666667"" + " }," + " {" + " "id": "2"," + " "name": "Johnny Depp"," + " "gender" : "male"," + " "latitude" : "37.336453"," + " "longitude" : "-121.884985"" + " }" + " ]" + "}";除此之外
geodata,实际上不是a
JSONObject而是a
JSONArray。
这是经过全面测试并且经过测试的更正代码:
import org.json.JSONArray;import org.json.JSONException;import org.json.JSONObject;public class ShowActivity { private final static String JSON_DATA = "{" + " "geodata": [" + " {" + " "id": "1"," + " "name": "Julie Sherman"," + " "gender" : "female"," + " "latitude" : "37.33774833333334"," + " "longitude" : "-121.88670166666667"" + " }," + " {" + " "id": "2"," + " "name": "Johnny Depp"," + " "gender" : "male"," + " "latitude" : "37.336453"," + " "longitude" : "-121.884985"" + " }" + " ]" + "}"; public static void main(final String[] argv) throws JSonException { final JSonObject obj = new JSonObject(JSON_DATA); final JSonArray geodata = obj.getJSonArray("geodata"); final int n = geodata.length(); for (int i = 0; i < n; ++i) { final JSonObject person = geodata.getJSonObject(i); System.out.println(person.getInt("id")); System.out.println(person.getString("name")); System.out.println(person.getString("gender")); System.out.println(person.getDouble("latitude")); System.out.println(person.getDouble("longitude")); } }}这是输出:
C:devscrap>java -cp json.jar;. ShowActivity1Julie Shermanfemale37.33774833333334-121.886701666666672Johnny Deppmale37.336453-121.884985



