我有一些问题......当我尝试从json填充微调器数据时
这是我的json data:
正常解析银行和产品工作
银行。
产品。
提供商没有数据
日志。
我应该怎么做才能将提供程序解析为android spinner?
答案 0 :(得分:1)
在这里,您尝试从使用json响应json形成的jsonArray
中获取提供程序jsonobject
。
JSONArray categories = jsonObj.getJSONArray("provider");
但是provider
jsonArray
不在基本的jsonobject中,但它在产品jsonArray
中。这就是为什么你没有为提供者获取任何数据的原因。
解决方案:
首先从基础jsonobject获取产品jsonarray。然后在循环中为每个产品提取提供者jsonarray。
算法或流程:
JSONObject jsonObj = new JSONObject(json);
//基础json对象
JSONArray bankArray = jsonObj.getJSONArray("bank");
//银行json数组
JSONArray productArray = jsonObj.getJSONArray("product");
//产品json数组
// no. of items in product
int arrayLength = productArray.length();
for (int i = 0; i < arrayLength; i++) {
// get single product object from array
JSONObject singleProductObject = productArray
.getJSONObject(i);
// Get the provider array for every product
JSONArray providerArray = singleProductObject.getJSONArray("provider");
}
这样您就可以获得提供者数据。 希望它可以帮到你。
答案 1 :(得分:1)
试试这个..
提供商是inside
产品 array
"product": [ // JSONArray
{ // JSONObject
"id": "1",
"value": "PULSA",
"name": "Pulsa Telpon",
"provider": [ // JSONArray
<强>代码强>
try {
JSONObject jsonObj = new JSONObject(json);
if (jsonObj != null) {
JSONObject product_obj = jsonObj.getJSONArray("product").getJSONObject(0);
JSONArray categories = product_obj
.getJSONArray("provider");
for (int i = 0; i < categories.length(); i++) {
JSONObject catObj = (JSONObject) categories.get(i);
Category cat = new Category(catObj.getInt("id"),
catObj.getString("name"));
categoriesList.add(cat);
}
}
} catch (JSONException e) {
e.printStackTrace();
}
答案 2 :(得分:1)
我理解你的Json对象包含的是memeber,它是一个数组库和产品 provider是内部数组od产品。 我不确定你是否照顾这个
仅针对单品
尝试此操作JSONArray categories = jsonObj.getJSONArray(&#34; product&#34;)[0] .getJSONArray(&#34; provider&#34;);