Android JSONArray中的遍历数组

Android JSONArray中的遍历数组,android,json,Android,Json,我正在为android制作一个应用程序,它调用一个Web服务,返回一个json,其中包含一个数组作为参数,我可以查看所有设置并轻松保存它们 问题是当我在JSON对象中获取返回的数组时 JSON示例: [{"codigoArticulo":"0001","nombreArticulo":"CHULETAS DE CORDERO","factorVentasDefecto":"KG","precio":21.95,"factoresDeVenta":["KG","UN"]},{"codigoArti

我正在为android制作一个应用程序,它调用一个Web服务,返回一个json,其中包含一个数组作为参数,我可以查看所有设置并轻松保存它们

问题是当我在JSON对象中获取返回的数组时

JSON示例:

[{"codigoArticulo":"0001","nombreArticulo":"CHULETAS DE CORDERO","factorVentasDefecto":"KG","precio":21.95,"factoresDeVenta":["KG","UN"]},{"codigoArticulo":"0007","nombreArticulo":"FALDETA DE CORDERO","factorVentasDefecto":"KG","precio":11.95,"factoresDeVenta":["KG","FL"]}]
我可以轻松地保存“codigoArticulo”、“nombreArticulo”、“factorVentasDefecto”和“precio”,但我不知道如何保存“FactorDeventa”

我有以下代码:

JSONArray resparray = new JSONArray(JSONdevuelto);

        for (int i = 0; i < resparray.length(); i++) {
            JSONObject respJSON = resparray.getJSONObject(i);

            int IDArticulo = respJSON.getInt("codigoArticulo");
            String NombreArticulo =  respJSON.getString("nombreArticulo");
            String FactordeVenta =  respJSON.getString("factorVentasDefecto");
            int PrecioArticulo = respJSON.getInt("precio");
}
但是没有工作,因为它们是不兼容的类型

我需要阵列来制作一个微调器

多谢各位

JSONArray jArray = respJSON.getJSONArray("factoresDeVenta");

它将为您提供存储在
factoresDeVenta
中的数据数组,您可以再次遍历该数组以从该数组中获取单个元素。

factoresDeVenta
是JSONObject中的JSONArray,因此您需要使用
getJSONArray
optJSONArray
并使用循环从JSONArray获取值y:

 JSONArray jArray = respJSON.optJSONArray("factoresDeVenta");
 for (int i = 0; i < jArray.length(); i++) {
   String str_value=jArray.optString(i);  //<< jget value from jArray
 }
JSONArray jArray=respJSON.optJSONArray(“factoresDeVenta”);
for(int i=0;iString str_value=jArray.optString(i);//可以存储在
ArrayList


调用
respJSON.getJSONArray(“factoresDeVenta”)
不起作用?但是我需要里面的值,我写“String[]Factores=respJSON.getJSONArray(“factoresDeVenta”);”并且是不兼容的类型sJSONarray Factores=respJSON.getJSONArray(“factoresDeVenta”),然后迭代JSONArray来转换字符串[]内部元素是变化的,所以我想选择自动模式,而不是“getString()”,我可以?
jArray。get(n)
将为您提供
jArray
n
元素。
 JSONArray jArray = respJSON.optJSONArray("factoresDeVenta");
 for (int i = 0; i < jArray.length(); i++) {
   String str_value=jArray.optString(i);  //<< jget value from jArray
 }
ArrayList<String> arrStr = new ArrayList<String>();

JSONArray jArray = respJSON.optJSONArray("factoresDeVenta");

for (int i = 0; i < jArray.length(); i++) {
     arrStr.add(jArray.getString(i));    
}
String[] Factores = arrStr.toArray(new String[arrStr.size()]);