0

我的 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

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

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

4

1 回答 1

1

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

    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]));
    }
于 2012-08-10T19:20:54.947 回答