Java 将JSONObject转换为List的方法<;NameValuePair>;

Java 将JSONObject转换为List的方法<;NameValuePair>;,java,php,android,json,Java,Php,Android,Json,嗨,我正在创建一个android应用程序。在我的应用程序中,我有一些表单字段,比如edittext和单选按钮,我通过从所有表单字段中检索文本来创建一个JSONObject。JsonObject已成功创建。现在我想把这个对象传递到我的PHP页面,在那里我编写了获取这些细节并将其存储在数据库中的代码。我的问题是我不明白如何通过httpPost或httpGet方法发送这个JSON对象。我知道的唯一方法是通过List发送参数,所以我正在尝试将JSONObject转换为List。有谁能提供一种方法,可以直

嗨,我正在创建一个android应用程序。在我的应用程序中,我有一些表单字段,比如edittext和单选按钮,我通过从所有表单字段中检索文本来创建一个
JSONObject
。JsonObject已成功创建。现在我想把这个对象传递到我的PHP页面,在那里我编写了获取这些细节并将其存储在数据库中的代码。我的问题是我不明白如何通过
httpPost
httpGet
方法发送这个JSON对象。我知道的唯一方法是通过
List
发送参数,所以我正在尝试将JSONObject转换为
List
。有谁能提供一种方法,可以直接将我的JSONObject转换为
List
。是否有任何预定义的方法来执行此操作。或者任何一个可以提供解决方案,我可以通过JSONObject直接发送到PHP并在那里检索。

将JSONObject作为字符串传递给字符串实体构造函数,然后将其传递给setEntity()

示例:

    HttpPost request = new HttpPost("//website");
    StringEntity params =new StringEntity("passmyjson=" + yourJSONOBject.toString());
    request.addHeader("content-type", "//header");
    request.setEntity(params);
    HttpResponse response = httpClient.execute(request);
在php文件中检查它是否工作

<?php
print_r($_POST);
$json_string = $_POST['passmyjson']; 
$json = json_decode($json_string);
print_r($json);
?>

您可以使用。我假设您已经有一个PHP处理程序来处理这个请求。简单地说

  • 创建您的
    JSONObject
  • 把你想要的值
  • 将该json发送到php处理程序
  • 您需要以
    application/x-www-form-urlencoded
让我们调用url:

请求参数的格式为:

json={"key": "val"}
您可以在php端像这样处理这个问题

<?php
.....
$json = $_POST["json"]; // This will be json string
.....
谢谢你们,我拿到了

我在我的android活动类中添加了以下几行

 DefaultHttpClient httpClient = new DefaultHttpClient();
 HttpResponse httpResponse;
 HttpPost httppost = new HttpPost(link);                //-->link is the php page url 
 httppost.setEntity(new StringEntity(obj.toString()));  //-->obj is JSONObject
 httpResponse = httpClient.execute(httppost);
 HttpEntity httpEntity = httpResponse.getEntity();
在我的php文件中,我添加了以下代码

$msg=json_decode(file_get_contents('php://input'), true); 
为了从接收到的Json字符串中获取特定值,我添加了这个
$data=$msg['name']


它正在工作

为什么不按原样发送整个JSON呢。使用参数
json=JSONObject.toString()
添加一个
NameValuePair
$msg=json_decode(file_get_contents('php://input'), true);