java - Android中读取json数组的方法

标签 java android arrays json

我在读取从服务器获取的 json 数组时遇到问题:http://XXX.XXX.XXX.XXX:9090/appsapi/rest/services/getStudentPersonalDetails/123789 ,这个 json 数组里面没有 json 对象。如下图:

{"password":"raj","address":"dfsaf","state":"tamilnadu","image":"Bindu Appalam.jpg",
 "dept":"BE(Mech)","fname":"fasdf","mname":"saffd","dob":"14/12/1951","sex":"Male",
 "email":"fdasd@gmail.com","contact":"212121212545855555545","city":"dsfadf",
 "pin":"600106","sname":"fdjsf","studid":"123789"}

我想解析它..

我尝试从 httpclient 请求中获取如下所示的 json 数组:

try {

            System.out.println("url tt : "+url);
            // http client
            DefaultHttpClient httpClient = new DefaultHttpClient();
            HttpEntity httpEntity = null;
            HttpResponse httpResponse = null;

            System.out.println(" Urls Input to "+url);

            // Checking http request method type
            if (method == POST) {
                HttpPost httpPost = new HttpPost(url);
                // adding post params
                if (params != null) {
                    httpPost.setEntity(new UrlEncodedFormEntity(params));
                }

                httpResponse = httpClient.execute(httpPost);

            } else if (method == GET) {
                // appending params to url
                System.out.println(" Params Valyes "+params);

                if (params != null) {
                    String paramString = URLEncodedUtils.format(params, "utf-8");
                    url += "?" + paramString;
                    System.out.println(" Params String "+paramString);
                }
                HttpGet httpGet = new HttpGet(url);
                httpResponse = httpClient.execute(httpGet);
            }

            httpEntity = httpResponse.getEntity();
            response = EntityUtils.toString(httpEntity);

        } catch (UnsupportedEncodingException e) {
            e.printStackTrace();
        } catch (ClientProtocolException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }

但在响应中出现以下错误:

05-20 16:38:25.420: I/System.out(29983):  
Output <!DOCTYPE html><html><head><title>Apache Tomcat/8.0.5 - Error report
</title><style type="text/css">H1 {font-family:Tahoma,Arial,sans-serif;color:white;background-color:#525D76;font-size:22px;} 
H2 {font-family:Tahoma,Arial,sans-serif;color:white;background-color:#525D76;font-size:16px;} 
H3 {font-family:Tahoma,Arial,sans-serif;color:white;background-color:#525D76;font-size:14px;} 
BODY {font-family:Tahoma,Arial,sans-serif;color:black;background-color:white;} 
B {font-family:Tahoma,Arial,sans-serif;color:white;background-color:#525D76;} 
P {font-family:Tahoma,Arial,sans-serif;background:white;color:black;font-size:12px;}A {color : black;}A.name
 {color : black;}.line {height: 1px; background-color: #525D76; border: none;}</style> </head><body><h1>HTTP Status 404 - Not Found
</h1><div class="line"></div><p><b>type</b> Status report</p><p><b>message</b> <u>Not Found</u></p><p><b>description</b>
 <u>The requested resource is not available.</u></p><hr class="line"><h3>Apache Tomcat/8.0.5</h3></body></html>

任何人,请在这里帮忙...

最佳答案

JSON 对象以 { 开头并以 } 结尾,而 JSON 数组以 [ 开头并以 . 结尾。

在您的情况下,更改您的代码以使用 JSONObject。

JSONObject json = new JSONObject(jsonString);
JSONArray jArray = json.getJSONArray("list");

System.out.println("*****JARRAY*****"+jArray.length());
for(int i=0;i<jArray.length();i++){


 JSONObject json_data = jArray.getJSONObject(i);
 Log.i("log_tag","_id"+json_data.getInt("account")+
  ", mall_name"+json_data.getString("name")+
  ", location"+json_data.getString("number")+
  ", telephone"+json_data.getString("url")+
  ",----"+json_data.getString("balance")+
  ",----"+json_data.getString("credit")+
  ",----"+json_data.getString("displayName")
 );

}

引用:https://stackoverflow.com/a/4244963/2771869

关于java - Android中读取json数组的方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23758904/

相关文章:

java - 一段时间后如何打开新的 JPanel (Java)?

java - 为什么 log4j-slf4j-impl 不是无锁的?

java - 更改 logback 级别并保存到 logback.xml

Android - 从 Activity 向上导航到 Fragment

android - 尝试将 APK 安装到模拟器时失败 [install_parse_failed_no_certificates]

php - 如何修改数组中的每第 n 个项目?

Java解析XML日期-排除时间

Android Autocompletetextview多行

java - 从数组到数组创建新对象

c - 为什么每次调用不同的函数时都会出现<null>?