1

我正在为 android 制作一个应用程序,它调用一个 web 服务,该服务返回一个带有 ARRAY 作为参数的 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”,但我不知道如何保存“factoresDeVenta”。

我有这个代码:

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");
}

我如何将“factoresDeVenta”上的变量保存在一个数组中?

我试试

String[] Factores = respJSON.getJSONArray("factoresDeVenta");

但没有作品,因为是不兼容的类型。

我需要该数组稍后制作一个 Spinner

谢谢你。

4

3 回答 3

3

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

 JSONArray jArray = respJSON.optJSONArray("factoresDeVenta");
 for (int i = 0; i < jArray.length(); i++) {
   String str_value=jArray.optString(i);  //<< jget value from jArray
 }
于 2013-06-06T10:48:37.020 回答
0

你可以存储在ArrayList<String>

ArrayList<String> arrStr = new ArrayList<String>();

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

for (int i = 0; i < jArray.length(); i++) {
     arrStr.add(jArray.getString(i));    
}

然后你可以将arraylist转换为字符串数组

String[] Factores = arrStr.toArray(new String[arrStr.size()]);
于 2013-06-06T10:53:17.063 回答
0
JSONArray jArray = respJSON.getJSONArray("factoresDeVenta");

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

于 2013-06-06T10:43:31.270 回答