android studio中创建json文件,并在activity中读取JSON文件

版本android studio 3.4.1 

1.创建一个json文件:首先在src/main/下建一个assets文件夹,然后再assets下建一个xxxx.json文件,把数据按照json格式写到文件中即可

我的json文件名为province.jason,数据格式如下:

{
  "province":
  [
    {"id":1, "name": "北京"},
    {"id":2, "name": "上海"},
    {"id":3, "name": "天津"},
    {"id":4, "name": "重庆"},
    {"id":5, "name": "香港"},
    {"id":6, "name": "澳门"},
    {"id":7, "name": "台湾"},
    {"id":8, "name": "黑龙江"},
    {"id":9, "name": "吉林"},
    {"id":10, "name": "辽宁"},
    {"id":11, "name": "内蒙古"},
    {"id":12, "name": "河北"}
  ]
}

2.读取json文件:

        try {
            InputStream is = MainActivity.this.getClass().getClassLoader().
                    getResourceAsStream("assets/"+"province.json");
            InputStreamReader streamReader = new InputStreamReader(is);
            BufferedReader reader  = new BufferedReader(streamReader);
            String line;
            StringBuilder stringBuilder = new StringBuilder();
            while ((line = reader.readLine()) != null){
                Log.d("coolWeather", "line=" +  line);
                stringBuilder.append(line);
            }
            reader.close();
            reader.close();
            is.close();
        }catch (IOException e){
            e.printStackTrace();
        }
如果你不是在MainActivity下编辑的这段代码,把其中的MainActivity换成你当前的活动名就ok了
要在Android Studio读取MySQL表数据并显示,需要执行以下步骤: 1. 在MySQL创建一个表,并添加一些数据。 2. 在Android Studio创建一个新项目,并添加以下依赖项: ``` implementation 'com.android.volley:volley:1.1.1' implementation 'com.google.code.gson:gson:2.8.6' ``` 3. 在AndroidManifest.xml文件添加以下权限: ``` <uses-permission android:name="android.permission.INTERNET" /> ``` 4. 创建一个名为MySingleton的单例类,用于处理所有的Volley请求。在该类添加以下代码: ``` public class MySingleton { private static MySingleton instance; private RequestQueue requestQueue; private static Context ctx; private MySingleton(Context context) { ctx = context; requestQueue = getRequestQueue(); } public static synchronized MySingleton getInstance(Context context) { if (instance == null) { instance = new MySingleton(context); } return instance; } public RequestQueue getRequestQueue() { if (requestQueue == null) { requestQueue = Volley.newRequestQueue(ctx.getApplicationContext()); } return requestQueue; } public <T> void addToRequestQueue(Request<T> req) { getRequestQueue().add(req); } } ``` 5. 创建一个名为MainActivity的活动,在该活动添加以下代码: ``` public class MainActivity extends AppCompatActivity { private TextView textView; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); textView = findViewById(R.id.textView); String url = "http://yourdomain.com/get_data.php"; StringRequest stringRequest = new StringRequest(Request.Method.GET, url, new Response.Listener<String>() { @Override public void onResponse(String response) { Gson gson = new Gson(); Data[] data = gson.fromJson(response, Data[].class); StringBuilder sb = new StringBuilder(); for (Data d : data) { sb.append(d.getName()).append(" - ").append(d.getValue()).append("\n"); } textView.setText(sb.toString()); } }, new Response.ErrorListener() { @Override public void onErrorResponse(VolleyError error) { textView.setText(error.getMessage()); } }); MySingleton.getInstance(this).addToRequestQueue(stringRequest); } } ``` 6. 创建一个名为Data的Java类,用于表示MySQL表的数据。 ``` public class Data { private String name; private int value; public String getName() { return name; } public void setName(String name) { this.name = name; } public int getValue() { return value; } public void setValue(int value) { this.value = value; } } ``` 7. 在MySQL创建一个名为get_data.php的文件,并添加以下代码: ``` <?php $servername = "localhost"; $username = "yourusername"; $password = "yourpassword"; $dbname = "yourdatabase"; $conn = new mysqli($servername, $username, $password, $dbname); if ($conn->connect_error) { die("Connection failed: " . $conn->connect_error); } $sql = "SELECT name, value FROM yourtable"; $result = $conn->query($sql); $rows = array(); while($r = mysqli_fetch_assoc($result)) { $rows[] = $r; } print json_encode($rows); $conn->close(); ?> ``` 在该文件,将"yourusername"、"yourpassword"、"yourdatabase"、"yourtable"替换为你的MySQL用户名、密码、数据库名称和表名称。 运行该应用程序,将显示从MySQL表检索到的数据。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值