0

我得到的 JSON 格式是:

{
    "test":[
        {"key1":"value1"},
        {"key2":"value2"}
     ]
}

但是是否有可能获得这种格式呢?

{
    "test": {
        "key1":"value1",
        "key2":"value2"
    }
}

我的php代码是这样的:

$key=$row[1];
$value=$row[2];
$posts[] = array($key => $value);

$response['strings'] = $posts;
fwrite($out, json_Encode($response))

我已经坚持了几个小时,请有人帮忙!提前致谢!

4

3 回答 3

2

你要

$posts[$key] = $value;

问题是带有字符串键的 PHP 数组是 JSON 术语中的对象。

于 2012-07-12T02:18:05.227 回答
1

第一个是数组,第二个是对象。

$posts = new stdClass();
$posts->key1 = "value1";
$posts->key2 = "value2";

$response['strings'] = $posts;
fwrite($out, json_Encode($response))
于 2012-07-12T02:18:08.920 回答
1

我假设您的代码如下所示:

$posts = array();
while( somthing )
{
  $row = ...

  $key=$row[1];
  $value=$row[2];
  $posts[] = array($key => $value);
}

$response['strings'] = $posts;
fwrite($out, json_Encode($response))

您的解决方法是这样做:

$posts = array();
while( somthing )
{
  $row = ...

  $key=$row[1];
  $value=$row[2];
  $posts[$key] = $value;
}

$response['strings'] = $posts;
fwrite($out, json_Encode($response))
于 2012-07-12T02:18:15.180 回答