【问题标题】:JSON in Java AndroidJava Android 中的 JSON
【发布时间】:2015-09-30 07:40:11
【问题描述】:

我正在尝试使用 JSON 将数据发送到我的 php 服务器,但出现此错误

com.google.gson.JsonParseException: unable to parse json

我对 JSON 没有经验...这是我的 java 代码

JsonObject json = new JsonObject();
                json.addProperty("xxx4", "" + userid);
                json.addProperty("xxx3", "" + name);
                json.addProperty("xxx2", "" + aboutYourself.getText().toString());
                json.addProperty("xxx1", "Male");
                json.addProperty("xxx", "blabla" );





                Ion.with(getApplicationContext())
                        .load("xxx.com/json.php")
                        .setJsonObjectBody(json)
                        .asJsonObject()
                        .setCallback(new FutureCallback<JsonObject>() {
                            @Override
                            public void onCompleted(Exception e, JsonObject result) {
                                // do stuff with the result or error
                                Log.e("Error/Non-Error: ", "Error?: " + e + " Result?: " + result);
                            }
                        });

还有我的 php 代码,因为我试图理解这一点

<?php print_r($_POST); ?>

我使用了网站上的示例代码

【问题讨论】:

    标签: java php android json


    【解决方案1】:

    尝试导入

    import org.json.JSONObject;
    

    下面的代码应该是这样的:

    try {
                JSONObject json = new JSONObject();
                json.put("xxx4", "" + userid);
                json.put("xxx3", "" + name);
                json.put("xxx2", "" + aboutYourself.getText().toString());
                json.put("xxx1", "Male");
                json.put("xxx", "blabla");
    
                Ion.with(getApplicationContext())
                        .load("xxx.com/json.php")
                        .setJsonObjectBody(json)
                        .asJsonObject()
                        .setCallback(new FutureCallback<JsonObject>() {
                            @Override
                            public void onCompleted(Exception e, JsonObject result) {
                                // do stuff with the result or error 
                                Log.e("Error/Non-Error: ", "Error?: " + e + " Result?: " + result);
                            }
                        });
            } catch (JSONException e) {
                e.printStackTrace();
            }
    

    【讨论】:

    • Exceptionen 永远不会被抛出,因为它已经在这里被处理 public void onCompleted(Exception e, JsonObject result) {
    【解决方案2】:

    不要使用 print_r 函数,我不会创建 JSON 表示法,试试下面的代码

    <?php json_encode($_POST); ?>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2022-01-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多