android中JSON数组中具有相同对象名称的多个数组?
在我的应用程序中,我得到了如下的J-SON响应android中JSON数组中具有相同对象名称的多个数组?,android,Android,在我的应用程序中,我得到了如下的J-SON响应 { "orderDetails": [ { "order_details": { "branch_code": 0, "cust_code": 87, "custom_instructions": "<null>", "merchant_code": "<null>", "order
{
"orderDetails": [
{
"order_details": {
"branch_code": 0,
"cust_code": 87,
"custom_instructions": "<null>",
"merchant_code": "<null>",
"order_number": 419,
"order_type_code": 1,
"packing_charge": 0,
"price": 200,
"product_code": 21,
"quantity": 1,
"value": 200
},
"order_headers": {
"branch_code": 0,
"cust_code": 87,
"delivered_time": "<null>",
"delivery_charge": 23,
"delivery_date": "2013-05-02",
"delivery_support": "",
"delivery_time": "12:52:25",
"grand_total": 354,
"merchant_code": "<null>",
"order_datetime": "2013-05-02 12:52:25",
"order_status": "Pending",
"order_type_code": 1,
"order_value": 354,
"packing_charge": 0,
"payment_status": "Pending",
"payment_type": "Cash",
"sub_total": 325,
"vat_percent": 7
}
},
{
"order_details": {
"branch_code": 0,
"cust_code": 87,
"custom_instructions": "<null>",
"merchant_code": "<null>",
"order_number": 419,
"order_type_code": 1,
"packing_charge": 0,
"price": 125,
"product_code": 35,
"quantity": 1,
"value": 125
},
"order_headers": {
"branch_code": 0,
"cust_code": 87,
"delivered_time": "<null>",
"delivery_charge": 23,
"delivery_date": "2013-05-02",
"delivery_support": "",
"delivery_time": "12:52:25",
"grand_total": 354,
"merchant_code": "<null>",
"order_datetime": "2013-05-02 12:52:25",
"order_status": "Pending",
"order_type_code": 1,
"order_value": 354,
"packing_charge": 0,
"payment_status": "Pending",
"payment_type": "Cash",
"sub_total": 325,
"vat_percent": 7
}
}
],
"orderSuccess": 1
}
{
“订单详细信息”:[
{
“订单详细信息”:{
“分支机构代码”:0,
“客户代码”:87,
“自定义_说明”:“,
“商户代码”:“,
“订单号”:419,
“订单类型代码”:1,
“包装费”:0,
“价格”:200美元,
“产品代码”:21,
“数量”:1,
“价值”:200
},
“订单标题”:{
“分支机构代码”:0,
“客户代码”:87,
“交付时间”:“,
“交付费”:23,
“交付日期”:“2013-05-02”,
“交付支持”:“,
“交货时间”:“12:52:25”,
“总计”:354,
“商户代码”:“,
“订单日期时间”:“2013-05-02 12:52:25”,
“订单状态”:“待定”,
“订单类型代码”:1,
“订单价值”:354,
“包装费”:0,
“付款状态”:“待定”,
“付款类型”:“现金”,
“小计”:325,
“增值税百分比”:7
}
},
{
“订单详细信息”:{
“分支机构代码”:0,
“客户代码”:87,
“自定义_说明”:“,
“商户代码”:“,
“订单号”:419,
“订单类型代码”:1,
“包装费”:0,
“价格”:125,
“产品代码”:35,
“数量”:1,
“价值”:125
},
“订单标题”:{
“分支机构代码”:0,
“客户代码”:87,
“交付时间”:“,
“交付费”:23,
“交付日期”:“2013-05-02”,
“交付支持”:“,
“交货时间”:“12:52:25”,
“总计”:354,
“商户代码”:“,
“订单日期时间”:“2013-05-02 12:52:25”,
“订单状态”:“待定”,
“订单类型代码”:1,
“订单价值”:354,
“包装费”:0,
“付款状态”:“待定”,
“付款类型”:“现金”,
“小计”:325,
“增值税百分比”:7
}
}
],
“订单成功”:1
}
我想把所有订单的详细信息放在单数组列表中,我不知道如何解决这个问题。谁知道,请帮我解决这个问题。这是个简单的问题,你可以自己解决。读一读或者 试着自己做每件事,而不是复制/粘贴StackOverflow。
Upd抱歉,这一定是一条评论。您可以使用哈希映射的数组列表来解决此问题
ArrayList<HashMap<String,String>> List=new ArrayList<HashMap<String,String>>;
HashMap myHashMap=new HashMap<String, String>();
myHashMap.put(" ",values);
List.add(myHashMap);
ArrayList List=新的ArrayList;
HashMap myHashMap=新HashMap();
myHashMap.put(“,值);
List.add(myHashMap);
我没有检查代码,这段代码帮助你需要添加更多的东西作为参考
public void parse(String data ){
JsonObject j1 = new JsonObject(data);
String orderSuccess = j1.getString("orderSuccess");
if(j1.has("orderDetails"))
JsonArray jArray = new JsonArray(j1.getString("orderDetails"));
//jArray loop with size
for(i=0;i<jsonArray.length() ; i++){
ArrayList<FeedObject> arrayList = new ArrayList<FeedObject>();
FeedObject feedObject = new FeddObject ();
JsonObject j2 = jArray.getJsonObject(i);
if(j2.has("order_details")){
JsonObject j3 = j2.getJsonObject("order_details");
}
if(j2.has("order_headers")){
JsonObject j4 = j2.getJsonObject("order_headers");
}
feedObject.branch_code__order_details = j3.getString("branch_code");
.
.
.
.
feedObject.branch_code__order_headers = j4.getString("branch_code");
.
.
.
.
feedbject.orderSuccess = orderSuccess ;
}
}
public void解析(字符串数据){
JsonObject j1=新的JsonObject(数据);
String orderSuccess=j1.getString(“orderSuccess”);
如果(j1.has(“订单详细信息”))
JsonArray jArray=newjsonarray(j1.getString(“orderDetails”);
//带大小的jArray循环
对于(i=0;iJSONArray j1;
JSONObject或edeedetail、orderheader、main对象、main;
字符串custinstruction、brnchcode、custcode、deliverytime;
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
试一试{
main=新的JSONObject(jsonstring);
Log.e(main.toString(),“string”);
j1=main.getJSONArray(“订单详细信息”);
Log.e(j1.toString(),“字符串”);
对于(int i=0;i),您的问题是?@Pragnani无法获取所有订单详细信息值。我只能获取最后一个订单详细信息值。您如何解析它。发布您的代码以便我可以帮助您。是否要将所有订单详细信息保存在ArrayList中?
public void parse(String data ){
JsonObject j1 = new JsonObject(data);
String orderSuccess = j1.getString("orderSuccess");
if(j1.has("orderDetails"))
JsonArray jArray = new JsonArray(j1.getString("orderDetails"));
//jArray loop with size
for(i=0;i<jsonArray.length() ; i++){
ArrayList<FeedObject> arrayList = new ArrayList<FeedObject>();
FeedObject feedObject = new FeddObject ();
JsonObject j2 = jArray.getJsonObject(i);
if(j2.has("order_details")){
JsonObject j3 = j2.getJsonObject("order_details");
}
if(j2.has("order_headers")){
JsonObject j4 = j2.getJsonObject("order_headers");
}
feedObject.branch_code__order_details = j3.getString("branch_code");
.
.
.
.
feedObject.branch_code__order_headers = j4.getString("branch_code");
.
.
.
.
feedbject.orderSuccess = orderSuccess ;
}
}
JSONArray j1;
JSONObject ordeedetail,orderheader,mainobject,main;
String custinstruction,brnchcode,custcode,deliverytime;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
try {
main = new JSONObject(jsonstring);
Log.e(main.toString(),"string");
j1 = main.getJSONArray("orderDetails");
Log.e(j1.toString(),"string");
for(int i=0;i<j1.length();i++)
{
mainobject= j1.getJSONObject(i);
if (mainobject.has("order_details")){
ordeedetail = mainobject.getJSONObject("order_details");
brnchcode=ordeedetail.getString("branch_code").toString();
Log.e(brnchcode.toString(),"branch_code");
custcode=ordeedetail.getString("cust_code").toString();
Log.e(custcode.toString(),"cust_code");
custinstruction=ordeedetail.getString("custom_instructions").toString();
Log.e(custinstruction.toString(),"custinstruction");
}
else if(mainobject.has("order_headers")){
orderheader = mainobject.getJSONObject("order_details");
brnchcode=orderheader.getString("branch_code").toString();
Log.e(brnchcode.toString(),"branch_code");
custcode=orderheader.getString("cust_code").toString();
Log.e(custcode.toString(),"cust_code");
deliverytime=orderheader.getString("delivered_time").toString();
Log.e(custinstruction.toString(),"deliverytime");
}
}
} catch (JSONException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
try this logic....