Php Json响应以表格形式从服务器发送到Android Recycler视图
我正在开发一个应用程序,其中我使用PHP作为后端从数据库中获取一些数据。我有一个JSON响应,我想在recycler视图中将其提取到表布局表单中 我有来自PHP的JSON响应,其中包含数据。我的Json由两个数组组成,一个包含列名称,另一个包含列值。我想在桌子上展示一下。我尝试过使用“回收者视图”,但我无法实现我想要的。下面是我的JSON响应Php Json响应以表格形式从服务器发送到Android Recycler视图,php,android,json,android-recyclerview,android-tablelayout,Php,Android,Json,Android Recyclerview,Android Tablelayout,我正在开发一个应用程序,其中我使用PHP作为后端从数据库中获取一些数据。我有一个JSON响应,我想在recycler视图中将其提取到表布局表单中 我有来自PHP的JSON响应,其中包含数据。我的Json由两个数组组成,一个包含列名称,另一个包含列值。我想在桌子上展示一下。我尝试过使用“回收者视图”,但我无法实现我想要的。下面是我的JSON响应 [ [ { "column_name": "email" }, {
[
[
{
"column_name": "email"
},
{
"column_name": "product_code"
},
{
"column_name": "Shape"
},
{
"column_name": "BaseColor"
},
{
"column_name": "Size"
},
{
"column_name": "Qty"
},
{
"column_name": "TransNo"
},
{
"column_name": "Supplier"
}
],
[
{
"column_value": "ht@t.com"
},
{
"column_value": "BBAN0003"
},
{
"column_value": " ELEPHANT"
},
{
"column_value": " "
},
{
"column_value": " 0"
},
{
"column_value": " 1"
},
{
"column_value": " TID00000163"
},
{
"column_value": " ABDUL"
},
{
"column_value": "ht@t.com"
},
{
"column_value": "MAAR0043"
},
{
"column_value": " REC"
},
{
"column_value": " WHITE"
},
{
"column_value": " 06X04"
},
{
"column_value": " 1"
},
{
"column_value": " TID00000075"
},
{
"column_value": " SUNIL"
}
]
]
我想知道是否有任何方法可以在android studio中的表中显示此响应,并使用列名称和列值
请帮助我,我在这方面很沮丧,任何帮助都将被高度赞赏。
谢谢 是的,您需要从响应中获取JSONArray。之后,您必须在表格布局中创建动态行 查看我的示例代码:
String astr="[" +
" [" +
" {" +
" \"column_name\": \"email\"" +
" }," +
" {" +
" \"column_name\": \"product_code\"" +
" }" +
" " +
" ]," +
" [" +
" {" +
" \"column_value\": \"ht@t.com\"" +
" }," +
" {" +
" \"column_value\": \"BBAN0003\"" +
" } " +
" ]" +
"]";
try {
JSONArray jsonArray = new JSONArray(astr);
TableLayout ll = (TableLayout) findViewById(R.id.displayLinear);
TextView tv;
for (int i = 0; i <jsonArray.length(); i++) {
JSONArray Column= jsonArray.getJSONArray(i);
TableRow row = new TableRow(this);
for (int j = 0; j < Column.length(); j++) {
TableRow.LayoutParams lp = new TableRow.LayoutParams(TableRow.LayoutParams.WRAP_CONTENT);
row.setLayoutParams(lp);
tv = new TextView(this);
JSONObject jsonObject = (JSONObject) Column.get(j);
if (i == 0) {
tv.setText(jsonObject.getString("column_name"));
}
else
{
tv.setText(jsonObject.getString("column_value"));
}
row.addView(tv);
}
ll.addView(row, i);
}
} catch (JSONException e) {
e.printStackTrace();
}
String astr=“[”+
" [" +
" {" +
“\”列名称\“:\”电子邮件\”+
" }," +
" {" +
“\”列名称\“:\”产品代码\”+
" }" +
" " +
" ]," +
" [" +
" {" +
“\”列\u值\“:\”ht@t.com\"" +
" }," +
" {" +
“\“列\u值\”:\“BBAN0003”+
" } " +
" ]" +
"]";
试一试{
JSONArray JSONArray=新JSONArray(astr);
TableLayout ll=(TableLayout)findviewbyd(R.id.displayLinear);
文本视图电视;
对于(int i=0;我认为这不是一个有效的JSONI在Postman上检查了我的api,这是我得到的@RamMohandubeyIt@Ram Mohan dubeyI是一个有效的JSON.@Ram Mohan dubeyI正在从服务器获取数据,所以不需要使用RecyclerVIew??嘿@pratik我尝试过使用这个方法,首先我尝试了一杯酒来检查它是否工作正常,但错误是预期的begin对象,但被begin数组“@GET(“testing/getProductdetails.php”)调用getColumnNames(@Query(“email”)String email);”这就是我试图在JSON数组中获取数据的原因您可以在调用中使用String而不是JSONArray。