从PHP获取的json数据,并将它们存储在Java的数组中


json data fetched from php and store them in an array in java

我的JSON数组是这样的:

{"Name_1":1,"Name_2":0,"Name_3":0}

我在 Java 中用于获取值并将它们存储在单独的数组中的代码如下:

int[] operations= new int[3];
             String result = "";
             InputStream is = null;
             StringBuilder sb=null;
                try{
                    HttpClient httpclient = new DefaultHttpClient();
                    HttpPost httppost = new HttpPost("http://testteamgr.netau.net/parsing/test.php");
                    HttpResponse response = httpclient.execute(httppost);
                    HttpEntity entity = response.getEntity();
                    is = entity.getContent();
            }catch(Exception e){
                    Log.e("log_tag", "Error in http connection "+e.toString());
            }
            //convert response to string
            try{
                    BufferedReader reader = new BufferedReader(new InputStreamReader(is,"iso-8859-1"),8);
                    sb = new StringBuilder();
                    String line = null;
                    while ((line = reader.readLine()) != null) {
                            sb.append(line + "'n");
                    }
                    is.close();
                    result=sb.toString();
            }catch(Exception e){
                    Log.e("log_tag", "Error converting result "+e.toString());
            }
            try{
                JSONObject json_data = new JSONObject(result);
                System.out.println("Length of json is"+jArray.length());
                for(int i=0;i<jArray.length();i++){
                       if (i==0) operations[0]=json_data.getInt("Name_1");
                       else if (i==1) operations[1]=json_data.getInt("Name_2");
                       else if (i==2) operations[2]=json_data.getInt("Name_3"); }

我收到这些错误:

类型为 java.lang.string 的值 br 无法转换为 jsonobject

如果我打印出结果,我看不到 JSON对象,而是 html 代码。

所以我想要的是将这 3 个值放入一个单独的数组中。

你有一个对象,而不是一个数组。若要处理结果,可以使用以下代码:

    String json = "{'"Name_1'":1,'"Name_2'":0,'"Name_3'":0}";
    JSONObject object = new JSONObject(json);
    String[] propertyNames = JSONObject.getNames(object);
    String[] values = new String[propertyNames.length];
    for (int i = 0; i < propertyNames.length; i++) {
        values[i] = String.valueOf(object.get(propertyNames[i]));
    }