如何从此json对象中抽取字符串数组?

如何从此json对象中抽取字符串数组?

问题描述:

我想从以下JSON对象可用号码的列表,使用类从org.json如何从此json对象中抽取字符串数组?

{ 
     "response":true, 
     "state":1, 
     "data": 
     { 
      "CALLERID":"81101099", 
      "numbers": 
       [ 
         "21344111","21772917", 
         "28511113","29274472", 
         "29843999","29845591", 
         "30870001","30870089", 
         "30870090","30870091" 
       ] 
     } 
    } 

我的第一个步骤是,从web服务接收JSON对象后:

jsonObj = new JSONObject(response); 
jsonData = jsonObj.optJSONObject("data"); 

现在,我该如何保存字符串数组?

使用:

jsonObj = new JSONObject(response); 
jsonData = jsonObj.optJSONObject("data"); 
JSONArray arrJson = jsonData.getJSONArray("numbers"); 
String[] arr = new String[arrJson.length()]; 
for(int i = 0; i < arrJson.length(); i++) 
    arr[i] = arrJson.getString(i); 
+1

+1准确例。勺饲料:) – 2012-02-21 07:03:20

+1

除了JSONArray没有名为getLength(你的意思是长度()?)没有方法的事实,这是伟大的 - 谢谢:) – CodePrimate 2012-02-21 08:44:17

+0

我已编辑答案。 – jeet 2012-02-21 08:47:10

假设你正在试图让它在JavaScript块,尝试这样的事情

VAR arrNumber = jsonData.numbers;

你需要使用JSONArray拉阵列中的数据

JSONObject jObj= new JSONObject(your_json_response); 
JSONArray array = jObj.getJSONArray("data"); 

我的代码是用于获取 “数据”:

public void jsonParserArray(String json) { 

     String [] resultsNumbers = new String[100]; 

     try { 
      JSONObject jsonObjectGetData = new JSONObject(json); 
      JSONObject jsonObjectGetNumbers = jsonObjectGetData.optJSONObject("results"); 
      JSONArray jsonArray = jsonObjectGetNumbers.getJSONArray("numbers"); 
      for (int i = 0; i < jsonArray.length(); i++) { 
       resultsNumbers[i] = jsonArray.getString(i); 
      } 
     } catch (JSONException e) { 
      e.printStackTrace(); 
      Log.e(LOG_TAG, e.toString()); 
     } 
    }