Java 如何在android studio中解析多维json数据数组。?
我无法解析json数据 这是我的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
{"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;