Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/joomla/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何在android studio中解析多维json数据数组。?_Java_Android_Arrays_Json - Fatal编程技术网

Java 如何在android studio中解析多维json数据数组。?

Java 如何在android studio中解析多维json数据数组。?,java,android,arrays,json,Java,Android,Arrays,Json,我无法解析json数据 这是我的json数据: {"data": [ {"ean": "222222","itemname": "","location": "001010202,001010201","po":[ {"ponumber": 1,"qty": 22 }, {"ponumber": 2,"qty": 33 } ] }, { "ean

我无法解析json数据

这是我的json数据:

{"data":
[
    {"ean": "222222","itemname": "","location": "001010202,001010201","po":[
            {"ponumber": 1,"qty": 22
            },
            {"ponumber": 2,"qty": 33
            }
        ]
    },
    {
        "ean": "11112222",
        "itemname": "เหงือก",
        "location": "001010601",
        "po": [
            {
                "ponumber": 1,
                "qty": 7
            }
        ]
    },
    {
        "ean": "22223333",
        "itemname": "Crystal Water",
        "location": "001010410,001010401",
        "po": [
            {
                "ponumber": 3,
                "qty": 13
            }
        ]
    }
]}
我想显示如下输出: 多谢各位

这是我解析json数据并向listview显示的java代码:

 void parseJsonData(String jsonString) throws JSONException {
    String data = "";
    String data2 = null;
    List<String> list = new ArrayList<>();
    JSONObject json = new JSONObject(jsonString);
    JSONArray arrayData = json.getJSONArray("data");
   for (int i = 0; i < arrayData.length(); i++) {
        JSONObject jsonDataArray = arrayData.getJSONObject(i);
        String ean = jsonDataArray.getString("ean");
        String itemname = jsonDataArray.getString("itemname");
        String locations = jsonDataArray.getString("location");
        data =  "\n EAN                 = " + ean +
                "\n Item Name     = " + itemname +"\n";
        JSONArray arrayPO = jsonDataArray.getJSONArray("po");
        for (int j = 0; j < arrayPO.length(); j++ ) {
            JSONObject jsonPO = arrayPO.getJSONObject(j);
            ponumb = jsonPO.getString("ponumber");
            qty = jsonPO.getString("qty");
            //int numb = i + 1;
            data2 = "\n      PO Number   : " + ponumb +
                    "\n      Quantity        : " + qty + "\n";
            list.add(data+data2);
            System.err.println(data+data2);
        }
    }
    ArrayAdapter<String> LVarray;
    LVarray = new ArrayAdapter<String>(ListActivity.this, android.R.layout.simple_list_item_1, list);
    listView.setAdapter(LVarray);
}
void parseJsonData(字符串jsonString)抛出JSONException{
字符串数据=”;
字符串data2=null;
列表=新的ArrayList();
JSONObject json=新的JSONObject(jsonString);
JSONArray arrayData=json.getJSONArray(“数据”);
对于(int i=0;i

这是输出的屏幕截图:

1。您可以使用
StringBuilder
保存
数据2
po列表

2.在内部for循环中,可以使用
append
方法将其添加到其中

3.获取
StringBuilder
的长度。然后删除保存的
data2

4.然后你可以再次保存

编辑

public void parseJsonData(String jsonString) throws JSONException {
    String data = "";
    StringBuilder data2 = new StringBuilder();
    List<String> list = new ArrayList<>();
    JSONObject json = new JSONObject(jsonString);
    JSONArray arrayData = json.getJSONArray("data");
    for (int i = 0; i < arrayData.length(); i++) {
        JSONObject jsonDataArray = arrayData.getJSONObject(i);
        String ean = jsonDataArray.getString("ean");
        String itemname = jsonDataArray.getString("itemname");
        String locations = jsonDataArray.getString("location");
        data = "\n EAN                 = " + ean +
                "\n Item Name     = " + itemname + "\n";
        JSONArray arrayPO = jsonDataArray.getJSONArray("po");
        for (int j = 0; j < arrayPO.length(); j++) {
            JSONObject jsonPO = arrayPO.getJSONObject(j);
            ponumb = jsonPO.getString("ponumber");
            qty = jsonPO.getString("qty");
            //int numb = i + 1;
            data2.append("\n      PO Number       : " + ponumb +
                    "\n      Quantity        : " + qty + "\n");
            list.add(data + data2);
        }
        System.err.println(data + data2);
        int sb_length = data2.length();
        data2.delete(0, sb_length);
    }
}
public void parseJsonData(字符串jsonString)抛出JSONException{
字符串数据=”;
StringBuilder data2=新的StringBuilder();
列表=新的ArrayList();
JSONObject json=新的JSONObject(jsonString);
JSONArray arrayData=json.getJSONArray(“数据”);
对于(int i=0;i
1.您可以使用
StringBuilder
保存
数据2
po列表

2.在内部for循环中,可以使用
append
方法将其添加到其中

3.获取
StringBuilder
的长度。然后删除保存的
data2

4.然后你可以再次保存

编辑

public void parseJsonData(String jsonString) throws JSONException {
    String data = "";
    StringBuilder data2 = new StringBuilder();
    List<String> list = new ArrayList<>();
    JSONObject json = new JSONObject(jsonString);
    JSONArray arrayData = json.getJSONArray("data");
    for (int i = 0; i < arrayData.length(); i++) {
        JSONObject jsonDataArray = arrayData.getJSONObject(i);
        String ean = jsonDataArray.getString("ean");
        String itemname = jsonDataArray.getString("itemname");
        String locations = jsonDataArray.getString("location");
        data = "\n EAN                 = " + ean +
                "\n Item Name     = " + itemname + "\n";
        JSONArray arrayPO = jsonDataArray.getJSONArray("po");
        for (int j = 0; j < arrayPO.length(); j++) {
            JSONObject jsonPO = arrayPO.getJSONObject(j);
            ponumb = jsonPO.getString("ponumber");
            qty = jsonPO.getString("qty");
            //int numb = i + 1;
            data2.append("\n      PO Number       : " + ponumb +
                    "\n      Quantity        : " + qty + "\n");
            list.add(data + data2);
        }
        System.err.println(data + data2);
        int sb_length = data2.length();
        data2.delete(0, sb_length);
    }
}
public void parseJsonData(字符串jsonString)抛出JSONException{
字符串数据=”;
StringBuilder data2=新的StringBuilder();
列表=新的ArrayList();
JSONObject json=新的JSONObject(jsonString);
JSONArray arrayData=json.getJSONArray(“数据”);
对于(int i=0;i
这也有帮助

try {
                        //Get root array
    JSONArray data_array = jsonObject.getJSONArray("data");

                        for (int i=0;i<data_array.length();i++){
                            JSONObject jsonObject1 = array.getJSONObject(i);
                            String ean = jsonObject1.optString("ean");
                            String itemname = jsonObject1.optString("itemname");
                            String location = jsonObject1.optString("location");


                            JSONArray child_Array = jsonObject1.getJSONArray("po");
                            for (int j=0;j<childArray.length();j++){
                                JSONObject childJosnObject = array.getJSONObject(i);
                                String ponumber = jsonObject1.optString("ponumber");
                                String qty = jsonObject1.optString("qty");
                            }
                        }

                    } catch (JSONException e) {
                        e.printStackTrace();
                    }
试试看{
//获取根数组
JSONArray data_array=jsonObject.getJSONArray(“数据”);
对于(inti=0;i这也有帮助

try {
                        //Get root array
    JSONArray data_array = jsonObject.getJSONArray("data");

                        for (int i=0;i<data_array.length();i++){
                            JSONObject jsonObject1 = array.getJSONObject(i);
                            String ean = jsonObject1.optString("ean");
                            String itemname = jsonObject1.optString("itemname");
                            String location = jsonObject1.optString("location");


                            JSONArray child_Array = jsonObject1.getJSONArray("po");
                            for (int j=0;j<childArray.length();j++){
                                JSONObject childJosnObject = array.getJSONObject(i);
                                String ponumber = jsonObject1.optString("ponumber");
                                String qty = jsonObject1.optString("qty");
                            }
                        }

                    } catch (JSONException e) {
                        e.printStackTrace();
                    }
试试看{
//获取根数组
JSONArray data_array=jsonObject.getJSONArray(“数据”);

对于(inti=0;i你必须像这样尝试,它将帮助你

JsonParseModel jsonParseModel = new Gson().fromJson(jsonString,JsonParseModel.class);



public class JsonParseModel {

private ArrayList<DataClass> data;

public ArrayList<DataClass> getData() {
    return data;
}

public void setData(ArrayList<DataClass> data) {
    this.data = data;
}

public class DataClass{

        private String ean,itemname,location;

        private ArrayList<PoData> po;

        public String getEan() {
            return ean;
        }

        public void setEan(String ean) {
            this.ean = ean;
        }

        public String getItemname() {
            return itemname;
        }

        public void setItemname(String itemname) {
            this.itemname = itemname;
        }

        public String getLocation() {
            return location;
        }

        public void setLocation(String location) {
            this.location = location;
        }

        public ArrayList<PoData> getPo() {
            return po;
        }

        public void setPo(ArrayList<PoData> po) {
            this.po = po;
        }

        public class PoData{
            private int ponumber,qty;

            public int getPonumber() {
                return ponumber;
            }

            public void setPonumber(int ponumber) {
                this.ponumber = ponumber;
            }

            public int getQty() {
                return qty;
            }

            public void setQty(int qty) {
                this.qty = qty;
            }
        }
    }
}
JsonParseModel JsonParseModel=new Gson().fromJson(jsonString,JsonParseModel.class);
公共类JsonParseModel{
私有数组列表数据;
公共ArrayList getData(){
返回数据;
}
公共void setData(ArrayList数据){
这个数据=数据;
}
公共类数据类{
私有字符串ean、项目名称、位置;
私人ArrayList po;
公共字符串getEan(){
返回ean;
}
公共void setEan(字符串ean){
this.ean=ean;
}
公共字符串getItemname(){
返回itemname;
}
public void setItemname(字符串itemname){
this.itemname=itemname;