java - 如何使用 JSON 将字符串从 android 传递和读取到 sql

标签 java php android json

以前,我可以从 php 远程访问字符串。一开始我觉得这很困难,但 AsyncTask 为我完成了工作。现在,我可以访问从 php 到 sql server 的查询结果。但我想将一个字符串从我的 java 类传递给 php,当我用谷歌搜索一些信息时,我看到了一些 JSON 帖子并获取了代码,但我无法清楚地理解它们。这是我的代码:

protected String doInBackground(Void... params) {

            BufferedReader br = null;
            StringBuilder sb = new StringBuilder();
            String url = "http://122.2.8.226/MITBookstore/sqlconnect.php";
            HttpURLConnection urlConnection = null;

            String line;

            try {
                urlConnection = (HttpURLConnection) new URL(url).openConnection();
                InputStream in = urlConnection.getInputStream();

                br = new BufferedReader(new InputStreamReader(in));
                while ((line = br.readLine()) != null) {
                    sb.append(line);
                }
            }
            catch (Exception e) {
               e.printStackTrace();
            }
            finally {
                if (br != null) {
                    try {
                        br.close();
                    } catch (Exception e) {
                        e.printStackTrace();
                    }
                }
            }

            return sb.toString();

字符串包含在“sb.toString()”中。现在我如何在我的代码中添加一个 JSON 东西来将字符串从 java 发送到 php,并将结果字符串从 php 获取到 java。在此先感谢您的帮助。

最佳答案

如果您从服务器接收到JSON 格式的响应,请先将json 字符串转换为JSONObject。然后读取json数据供你使用。

try {
    JSONObject obj = new JSONObject(sb.toString());   // make string to json obj

    Iterator iter = obj.keys();     // get all keys from json obj and iterating
    while(iter.hasNext()){
        String key = (String)iter.next();
        String str = obj.get(key).toString();

       // write your code
    }
} catch(Exception e) {
    e.printStackTrace();
}

您的代码已包含问题的答案。建立 url 连接后,只需添加参数即可使用 OutputStreamWriter 将数据发送到服务器,就像您使用 InpustStreamReader 接收响应一样。

        BufferedReader br = null;
        StringBuilder sb = new StringBuilder();
        String url = "http://122.2.8.226/MITBookstore/sqlconnect.php";
        HttpURLConnection urlConnection = null;

        String line;
        try {
            urlConnection = (HttpURLConnection) new URL(url).openConnection();

            // wrtie params
            OutputStreamWriter we = new OutputStreamWriter(urlConnection.getOutPutStream());
            wr.write(data);       // data (make json obj to 'key=value' string)
            wr.flush();
            wr.close();
            // read response
            InputStream in = urlConnection.getInputStream();

            br = new BufferedReader(new InputStreamReader(in));
            while ((line = br.readLine()) != null) {
                sb.append(line);
            }
        }
        catch (Exception e) {
           e.printStackTrace();
        }
        finally {
            if (br != null) {
                try {
                    br.close();
                } catch (Exception e) {
                    e.printStackTrace();
                }
            }
        }enter code here

关于java - 如何使用 JSON 将字符串从 android 传递和读取到 sql,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30315397/

相关文章:

Java 打印方 block (未知字符)和常规文本

java - 关闭远程 akka actor 连接?

java - rxjava 2 中 BackpressureStrategy.BUFFER 和 onBackpressureBuffer 运算符之间的区别

php - 导入Excel文件到MySQL

php - 将多个自定义数据数组添加到 WooCommerce 自定义 Ajax 上的购物车项目添加到购物车

android - 折叠/展开可扩展 ListView 会更改 checkedtextview 中随机子项的切换

java - 为什么Mockito会跳过我抽象类的成员变量的初始化

java - 我怎样才能专注于谷歌地图的某个部分

android - Kotlin:WAITING Async 调用完成,然后为 var 赋值,然后返回

php - HTTP2 和继续执行 PHP