【发布时间】:2018-01-24 12:33:09
【问题描述】:
我在从 json 对象读取 json 数组时遇到问题
{ "DS": {
"LST": [
{
"OID": 1,
"OCD": "1",
"OPE": "AIRCEL",
"IPH": "Images/provider/aircelsm.jpg",
"MIL": 10,
"MXL": 10
},
{
"OID": 2,
"OCD": "3",
"OPE": "AIRTEL",
"IPH": "Images/provider/airtelsm.jpg",
"MIL": 10,
"MXL": 10
},
{
"OID": 22,
"OCD": "BSR",
"OPE": "BSNL SPL RECHARGE",
"IPH": "",
"MIL": 0,
"MXL": 0
},
{
"OID": 4,
"OCD": "4",
"OPE": "BSNL Topup",
"IPH": "Images/provider/bsnlsm.jpg",
"MIL": 10,
"MXL": 10
},
{
"OID": 6,
"OCD": "5",
"OPE": "DOCOMO",
"IPH": "Images/provider/docomosm.jpg",
"MIL": 10,
"MXL": 10
},
{
"OID": 7,
"OCD": "6",
"OPE": "IDEA",
"IPH": "Images/provider/ideasm.jpg",
"MIL": 10,
"MXL": 10
},
{
"OID": 8,
"OCD": "7",
"OPE": "MTS",
"IPH": "Images/provider/mtssm.jpg",
"MIL": 10,
"MXL": 10
},
{
"OID": 5,
"OCD": "8",
"OPE": "RELAINCE",
"IPH": "Images/provider/reliancesm.jpg",
"MIL": 10,
"MXL": 10
},
{
"OID": 3,
"OCD": "9",
"OPE": "VODAFONE",
"IPH": "Images/provider/vodafonesm.jpg",
"MIL": 10,
"MXL": 10
}
],
"LST1": [
{
"OID": 10,
"OCD": "0",
"OPE": "AIRTEL DTH",
"IPH": "Images/provider/airtelsm.jpg",
"MIL": 10,
"MXL": 10
},
{
"OID": 11,
"OCD": "0",
"OPE": "BIGTV",
"IPH": "Images/provider/aircelsm.jpg",
"MIL": 10,
"MXL": 10
},
{
"OID": 12,
"OCD": "0",
"OPE": "DISH TV",
"IPH": "Images/provider/dishtvsm.jpg",
"MIL": 10,
"MXL": 10
},
{
"OID": 9,
"OCD": "0",
"OPE": "SUN DIRECT",
"IPH": "Images/provider/sundirectsm.jpg",
"MIL": 10,
"MXL": 10
},
{
"OID": 13,
"OCD": "0",
"OPE": "TATA SKY",
"IPH": "Images/provider/tataskysm.jpg",
"MIL": 10,
"MXL": 10
},
{
"OID": 14,
"OCD": "0",
"OPE": "VIDEOCON DTH",
"IPH": "Images/provider/videoconsm.jpg",
"MIL": 10,
"MXL": 10
}
]
}
}
以上json数据来自服务器,如何读取其中的json数组。
我的读取json数据的模型类是
public class SpinnerRootObject {
@SerializedName("DS")
SpinnerMenuItems ds;
public SpinnerMenuItems getDs() {
return ds;
}
public void setDs(SpinnerMenuItems ds) {
this.ds = ds;
}
}
public class SpinnerMenuItems
{
@SerializedName("LST")
ListZero zeroList;
@SerializedName("LST1")
String firstList;
public ListZero getZeroList() {
return zeroList;
}
public void setZeroList( ListZero zeroList) {
this.zeroList = zeroList;
}
public String getFirstList() {
return firstList;
}
public void setFirstList(String firstList) {
this.firstList = firstList;
}
}
public class ListZero {
@SerializedName("IPH")
String images;
@SerializedName("OID")
String oid;
@SerializedName("OPE")
String ope;
@SerializedName("OCD")
String ocd;
@SerializedName("MIL")
String mil;
@SerializedName("MXL")
String mxl;
public String getMxl() {
return mxl;
}
public void setMxl(String mxl) {
this.mxl = mxl;
}
public String getMil() {
return mil;
}
public void setMil(String mil) {
this.mil = mil;
}
public String getOcd() {
return ocd;
}
public void setOcd(String ocd) {
this.ocd = ocd;
}
public String getOpe() {
return ope;
}
public void setOpe(String ope) {
this.ope = ope;
}
public String getOid() {
return oid;
}
public void setOid(String oid) {
this.oid = oid;
}
public String getImages() {
return images;
}
public void setImages(String images) {
this.images = images;
}
}
以上代码是读取json的模型类。
用于从服务器读取 json 的代码是
Gson gson = new Gson();
SpinnerRootObject spinnerRootObject = gson.fromJson(result.getResult(), SpinnerRootObject.class);
settingDropDown((List<SpinnerRootObject>) spinnerRootObject);
使用上述方法时发生异常 引起:java.lang.IllegalStateException: Expected BEGIN_OBJECT but was BEGIN_ARRAY at line 1 column 15 path 。我不知道如何读取给定 json 数据中的 json 数组
我需要将 json arraylist 数据传递到自定义适配器中
public void settingDropDown( List<SpinnerRootObject> selectedNetwork)
{
customAdapter = new Fragment_DTH_Main_Spinner_Adapter
(getActivity(),R.layout.fragment_dth_main_spinner_items,R.id.serviceName,selectedNetwork);
selectMenu.setAdapter(customAdapter);
}
请帮我如何从json对象中获取json数组
【问题讨论】:
-
您从未告诉我们您想对 JSON 数据做什么,但我建议您只使用 simpleJSON。