Json 来自服务器的响应以 table 形式进入 Android 回收站视图
Json Response from server in table form into Android Recycler view
我正在开发一个应用程序,我在其中使用 PHP 作为我的后端从数据库中获取一些数据。我有一个 JSON 响应,我想在回收站视图中将其提取到 table 布局表单中。
我有来自 PHP 的 JSON 回复,其中包含数据。我的 Json 由两个数组组成,一个包含列名,另一个包含列值。我想在 table 中显示它。我尝试过使用 Recycler 视图,但我无法实现我想要的。以下是我的 JSON 回复。
[
[
{
"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 工作室的 table 中使用 column_name 和 column_values 显示此响应。
请对此提供帮助我对此感到非常沮丧,我们将不胜感激任何帮助。
谢谢 !!!!
是的,您需要从响应中获取 JSONArray。之后,您必须在 TableLayout
中创建动态行
查看我的示例代码:
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();
}
我在 TableLayout 中动态添加了 ROWS。
希望对您有所帮助。
快乐编码...
我正在开发一个应用程序,我在其中使用 PHP 作为我的后端从数据库中获取一些数据。我有一个 JSON 响应,我想在回收站视图中将其提取到 table 布局表单中。
我有来自 PHP 的 JSON 回复,其中包含数据。我的 Json 由两个数组组成,一个包含列名,另一个包含列值。我想在 table 中显示它。我尝试过使用 Recycler 视图,但我无法实现我想要的。以下是我的 JSON 回复。
[
[
{
"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 工作室的 table 中使用 column_name 和 column_values 显示此响应。
请对此提供帮助我对此感到非常沮丧,我们将不胜感激任何帮助。 谢谢 !!!!
是的,您需要从响应中获取 JSONArray。之后,您必须在 TableLayout
中创建动态行查看我的示例代码:
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();
}
我在 TableLayout 中动态添加了 ROWS。
希望对您有所帮助。
快乐编码...