如何从此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);
答
假设你正在试图让它在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());
}
}
+1准确例。勺饲料:) – 2012-02-21 07:03:20
除了JSONArray没有名为getLength(你的意思是长度()?)没有方法的事实,这是伟大的 - 谢谢:) – CodePrimate 2012-02-21 08:44:17
我已编辑答案。 – jeet 2012-02-21 08:47:10