[英]How can i set this JSON with dynamic keys in POJO and get data from it in Android JAVA?
I am developing an e-commerce app and I am getting this JSON data from API. 我正在开发一个电子商务应用程序,并且正在从API获取此JSON数据。
{"status": 0, "data": {"stores": {"test-5": {"name": "Test 5", "locality": {"name": "Some place B", "id": 2}, "cover": "IMAGE-URL-HERE"}, "test-2": {"name": "Test 2", "locality": {"name": "Some place A", "id": 2}, "cover": "IMAGE-URL-HERE"}}}, "action": [["DATA", "stores"]]} {“状态”:0,“数据”:{“商店”:{“ test-5”:{“名称”:“测试5”,“位置”:{“名称”:“某个地方B”,“ id “:2},” cover“:” IMAGE-URL-HERE“},” test-2“:{” name“:” Test 2“,” locality“:{” name“:”某个地方A“,” id”:2},“ cover”:“ IMAGE-URL-HERE”}}},“ action”:[[“ DATA”,“ stores”]]}
I have created some POJO for this data too 我也为此数据创建了一些POJO
public class PartnerStoreMainPOJO {
@SerializedName("partnerstore")
@Expose
private PartnerStoresPOJO partnerstore;
/**
*
* @return
* The data
*/
public PartnerStoresPOJO getPartnerStore() {
return partnerstore;
}
/**
*
* @param partnerstore
* The data
*/
public void setPartnerStore(PartnerStoresPOJO partnerstore) {
this.partnerstore = partnerstore;
}
}
//------------- public class PartnerStoresPOJO { // -------------公共类PartnerStoresPOJO {
@SerializedName("partnerstoredetail")
@Expose
private Map<String, PartnerStoreDetailPOJO> partnerstoredetail;
/**
*
* @return
* The feeds
*/
public Map<String, PartnerStoreDetailPOJO> getpartnerstoredetail() {
return partnerstoredetail;
}
/**
*
* @param partnerstoredetail
* The feeds
*/
public void setpartnerstoredetail(Map<String, PartnerStoreDetailPOJO> partnerstoredetail) {
this.partnerstoredetail = partnerstoredetail;
}
} //---------------- } // ----------------
public class PartnerStoreDetailPOJO { 公共类PartnerStoreDetailPOJO {
@SerializedName("partnerstorelocality")
@Expose
private Map<String, PartnerStoreLocalityPOJO> partnerstorelocality;
@SerializedName("cover")
@Expose
private String cover;
@SerializedName("name")
@Expose
private String name;
/**
* @return The name
*/
public String getName() {
return name;
}
/**
* @param name The name
*/
public void setName(String name) {
this.name = name;
}
/**
* @return The cover
*/
public String getCover() {
return cover;
}
/**
* @param cover The address
*/
public void setCover(String cover) {
this.cover = cover;
}
public Map<String, PartnerStoreLocalityPOJO> getpartnerstorelocality() {
return partnerstorelocality;
}
public void setpartnerstorelocality(Map<String, PartnerStoreLocalityPOJO> partnerstorelocality) {
this.partnerstorelocality = partnerstorelocality;
}
} }
//---------------- // ----------------
public class PartnerStoreLocalityPOJO {
@SerializedName("name")
@Expose
private String name;
@SerializedName("id")
@Expose
private String id;
/**
*
* @return
* The name
*/
public String getName() {
return name;
}
/**
*
* @param name
* The name
*/
public void setName(String name) {
this.name = name;
}
/**
*
* @return
* The id
*/
public String getId() {
return id;
}
/**
*
* @param id
* The id
*/
public void setId(String id) {
this.id = id;
}
}
//--------------- // ----------------
Amd i am using volley library. 我正在使用排球库。 This is my java code-
这是我的Java代码-
public void onResultReceived(String response, String tag_json_obj) {
if (tag_json_obj.equals(LOCALITY_SET)){
try {
JSONObject jsonObject=new JSONObject(response);
String data=jsonObject.getString("data");
} catch (JSONException e) {
Log.d("EXCEPTN",e.toString());
e.printStackTrace();
}
}
}
I am using that data string. 我正在使用该数据字符串。
Try it once: Do changes accordingly, It can give you a direction for your query. 尝试一次:进行相应的更改,它可以为您提供查询的方向。
public void convertJSON(JSONObject jsonObject) {
try {
JSONObject object = jsonObject.getJSONObject("data");
Iterator<String> iter = object.keys();
while (iter.hasNext()) {
String key = iter.next();
Object value = object.get(key);
JSONObject obj2 = object.getJSONObject(key);
//set key to POJO
Iterator<String> iter2 = obj2.keys();
while (iter2.hasNext()) {
String key2 = iter2.next();
//....so on
}
}
} catch (JSONException e) {
e.printStackTrace();
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.