如何使用php生成json?

Hal*_*luk 30 php json

我之前从未使用过JSON,而且我正在尝试使用以下javascript:http: //jqueryselectcombo.googlecode.com/files/jquery.selectCombo1.2.6.js

它需要以下格式的JSON输出:

[{oV: 'myfirstvalue', oT: 'myfirsttext'},
 {oV: 'mysecondvalue', oT: 'mysecondtext'}]
Run Code Online (Sandbox Code Playgroud)

你能否引导我一个关于如何使用PHP生成JSON输出的例子?

Pas*_*TIN 64

获得PHP数据后,即可使用该json_encode功能; 它从PHP 5.2开始与PHP捆绑在一起

在您的情况下,您的JSON字符串表示:

  • 包含2个元素的列表
  • 每个都是一个对象,包含2个属性/值

在PHP中,这将创建您所代表的结构:

$data = array(
    (object)array(
        'oV' => 'myfirstvalue',
        'oT' => 'myfirsttext',
    ),
    (object)array(
        'oV' => 'mysecondvalue',
        'oT' => 'mysecondtext',
    ),
);
var_dump($data);
Run Code Online (Sandbox Code Playgroud)

var_dump让你:

array
  0 => 
    object(stdClass)[1]
      public 'oV' => string 'myfirstvalue' (length=12)
      public 'oT' => string 'myfirsttext' (length=11)
  1 => 
    object(stdClass)[2]
      public 'oV' => string 'mysecondvalue' (length=13)
      public 'oT' => string 'mysecondtext' (length=12)
Run Code Online (Sandbox Code Playgroud)

并将其编码为JSON:

$json = json_encode($data);
echo $json;
Run Code Online (Sandbox Code Playgroud)

你得到 :

[{"oV":"myfirstvalue","oT":"myfirsttext"},{"oV":"mysecondvalue","oT":"mysecondtext"}]
Run Code Online (Sandbox Code Playgroud)


顺便说一句:Frolm我记得的,我说你的JSON字符串是无效的-JSON数据:字符串周围应该有双引号,包括对象属性的名称

有关语法,请参见http://www.json.org/.


希望这可以帮助 :-)

  • 您实际上不需要将数组转换为对象.如果你有字符串键,json_encode会自动地将它表示为对象. (2认同)

Amb*_*ber 17

最简单的方法可能是从你想要的对的关联数组开始:

$data = array("myfirstvalue" => "myfirsttext", "mysecondvalue" => "mysecondtext");
Run Code Online (Sandbox Code Playgroud)

然后使用foreach和一些字符串连接:

$jsontext = "[";
foreach($data as $key => $value) {
    $jsontext .= "{oV: '".addslashes($key)."', oT: '".addslashes($value)."'},";
}
$jsontext = substr_replace($jsontext, '', -1); // to get rid of extra comma
$jsontext .= "]";
Run Code Online (Sandbox Code Playgroud)

或者,如果您有最新版本的PHP,则可以使用内置的json编码函数 - 只需要注意传递它们的数据,使其与预期的格式匹配.


enn*_*ler 6

这应该是有用的:生成JSON