【发布时间】:2015-02-01 21:18:02
【问题描述】:
在接收以下 JSON 时
{ "phone": [ "123", "456", "789"]}
在 PHP 中我尝试得到这个(显示为 print_r):
Array ( [0] => 123 [1] => 456 [2] => 789 )
因此我尝试使用以下代码,但没有成功:
if (isset($_GET["phone"])) {
//Decode Json
$values = json_decode($_GET['phone'], true);
print_r($values);
foreach ($values as $key => $value) {
echo "<p>$key | $value</p>";
}...
如何在请求的数组中接收和转换此 JSON?
在 php 代码中定义 JSON 时,它工作正常。然后我得到一个关联数组。在我看来,问题可能出在 java (android) 代码中,因为 $_GET['phone'] 应该在 php 中工作:
ArrayList<String> paramsstring = new ArrayList<String>();
ArrayList<BasicNameValuePair> paramstodb = new ArrayList<BasicNameValuePair>();
contacts = aa.toArray(new String[aa.size()]);
for (int i = 0; i < contacts.length; i++) {
paramsstring.add(contacts[i]);}
paramstodb.add(new BasicNameValuePair("phone", paramsstring.toString()));
// getting JSON string from URL
JSONObject json = jParser.makeHttpRequest(url_all_user, "GET", paramstodb);
也许 php 会收到另一种格式的 JSON? GET 请求应该不是问题,因为 JSON 不是很长。
【问题讨论】:
-
这应该可以正常工作!请向我们展示您的完整代码
-
$array = json_decode($_GET['phone'], true); $values=$array['phone']; -
我编辑了发送 JSON 的 android 代码。