【问题标题】:how to retrieve data from json in java android如何在java android中从json中检索数据
【发布时间】:2020-04-10 15:45:45
【问题描述】:

我正在尝试编辑它自己的服务器列表的 android vpn 应用程序。

我有一个我自己的带有服务器数据的 json,但不知道如何嵌入它。

这就是我的 json 响应的样子

    [
[
"0",
"PL",
"Poland",
"warswaw",
"1.1.1.1",
"IKEv2",
"",
""
],
[
"1",
"AU",
"Australia",
"Sydney ",
"1.1.1.1",
"IKEv2",
"",
""
],

这是应用程序中的代码

 JSONObject json_response = new JSONObject("http://example.com/json.php");
                JSONArray jsonArray = json_response.getJSONArray();
                for (int i = 0; i < jsonArray.length(); i++) {
                    JSONObject json_object = jsonArray.getJSONObject(i);
                    ServerArray[i][0] = json_object.getString("id");
               ;
                    ServerArray[i][1] = json_object.getString("file");
                    ServerArray[i][2] = json_object.getString("city");

                    ServerArray[i][3] = json_object.getString("country");
                    ServerArray[i][4] = json_object.getString("image");
                    ServerArray[i][5] = json_object.getString("ip");
                    ServerArray[i][6] = json_object.getString("active");
                    ServerArray[i][7] = json_object.getString("signal");
                    NumServers = NumServers + 1;
                }

数组来自旧 api https://raw.githubusercontent.com/gayanvoice/android-vpn-client-ics-openvpn/images/appdetails.json

我如何重写以便它读取我的服务器列表?

【问题讨论】:

  • 不是故意的,改帖让你满意

标签: java android arrays


【解决方案1】:

尝试使用Gson - 这对你来说会容易得多。

【讨论】:

  • 更改检索数据的逻辑可能会影响项目的其余部分。这就是为什么我要使用相同的方案,只是不知道如何正确解析它
【解决方案2】:

您的 JSON 响应格式为 Array of Arrays of Strings。使用键值对创建响应可能有更好的方法,但这取决于您。

您必须向端点发送请求以获取 JSON 响应。为了解析它,请查看 JSON 响应的格式,然后像这样解析:

JSONArray rootArray = response.getJSONArray(); // Gets the root array
for(int i = 0; i < rootArray.length(); i++){
    JSONArray childArray = rootArray.getJSONArray(i); // child array at index i
    for(int j = 0; j < childArray.length(); j++){
    // Traverse through and get strings using getString method on childArray
    }
}

【讨论】:

  • 我找不到符号响应
  • 这是因为您必须向服务器数据的 URL 发出请求并将其存储在 JSONObject 响应中
  • 真的是java和android的新手。感谢您尝试提供帮助,不知道该怎么做。 JSON 我有动态的变化响应。所以重点是用服务器更新我的数据库并在应用内显示它更改服务器列表
  • JSONObject json_response = new JSONObject("http://example.com/json.php"); 这一行基本上是从 URL“https...”获取 JSON。试试把你的网址放在这里?几个月前我就在你所在的地方。看看 JSON Parsing and Making HTTP requests to urls。如果您也在编写服务器代码,请了解请求及其工作方式等。
  • 我已将其声明为 private void GetAppDetails() { iv_server_refresh.setBackground(getDrawable(R.drawable.ic_servers_process)); RequestQueue 队列 = Volley.newRequestQueue(ServerActivity.this); queue.getCache().clear(); // StringRequest stringRequest = new StringRequest(Request.Method.GET, "raw.githubusercontent.com/gayanvoice/…", StringRequest stringRequest = new StringRequest(Request.Method.GET, "http:/example.com/json.php?id=20",
猜你喜欢
  • 1970-01-01
  • 2022-01-23
  • 1970-01-01
  • 2013-09-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-03-16
相关资源
最近更新 更多