java - 如何使用 JSON 将此 PHP 解析为 Java?

标签 java php android json parsing

我正在为这个而烦恼。我仍然不完全理解 JSON 是如何工作的。我试图将一个数字(格式化为字符串)从 PHP 脚本返回到 java。我不断收到以下错误:

Error parsing data org.json.JSONException: Value http of type java.lang.String cannot be converted to JSONArray

这是 PHP 代码的一个 fragment :

class result
{
    public $value = "";
}

$result = new result();
$result->value = "1";

print(json_encode($result));

返回: {“值”:“1”}

我正在尝试将“1”存储在一个字符串中,以便在 android 端进行错误检查。

它首先插入到 MySQL 数据库中并且可以工作,但它不会正确返回值。

这是我一直尝试使用的 java 代码:

try 
{
     CustomHttpClient.executeHttpPost(response="http://test.com/test.php",postParameters);

     String result = response.toString();

     try
     {
          returnString = "";

          JSONArray jArray = new JSONArray(result);

          for(int i=0;i<jArray.length();i++)
          {
                 JSONObject json_data = jArray.getJSONObject(i);
                 Log.i("log_tag","value:"+json_data.getString("value"));

                 returnString = json_data.getString("value");

          }

    }

    catch(JSONException e)
    {
        Log.e("log_tag", "Error parsing data "+e.toString());
        Toast.makeText(getApplicationContext(), "Error Parsing",  Toast.LENGTH_LONG).show();                                              
    }
}

最佳答案

您的 PHP 代码返回一个 JSON 对象(包含在 {} 中),而不是数组(包含在 [] 中)。因此,您需要将 JSON 解析代码更改为

returnString = "";

JSONObject json_data = new JSONObject(result);
Log.i("log_tag","value:"+json_data.getString("value"));

returnString = json_data.getString("value");

因为只返回一个 JSON 对象,所以也不需要循环。

关于java - 如何使用 JSON 将此 PHP 解析为 Java?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28720449/

相关文章:

php - ob_start() 未能在 laravel 3 中创建缓冲区

android - session cookie 在模拟器上有效,但在真实设备上无效

java - java中如何求特定基数的倒数?

java - 我是否需要扩展 ClassLoader 来重定向 Web 应用程序资源加载?

php - 再次过滤结果为 php

php - Zend Framework 多表查询

Android 相机权限 -> PlayStore

自定义对象的 Android ArrayList - 保存到 SharedPreferences - 可序列化?

java - javax.xml.soap.SOAPConnection 和 java.mail 之间的冲突

Java Swing : Paint(), doLayout() 未同步。例如。错误消息显示错误,在调整窗口大小时出错