【问题标题】:JSON Key Value Pairs within an Array in PHP using the json_encode() Function使用 json_encode() 函数在 PHP 中的数组中的 JSON 键值对
【发布时间】:2014-11-15 00:30:16
【问题描述】:

我正在尝试以特定语法获取我的 JSON 输出

这是我的代码:

$ss = array('1.jpg', '2.jpg');
$dates = array('eu' => '59.99', 'us' => '39.99');
$array1 = array('name' => 'game1', 'publisher' => 'ubisoft', 'screenshots' => $ss, 'dates' => $dates, 'added' => '2014/12/31');

echo json_encode($array1);

它给了我这个输出:

{
name: "game1",
publisher: "ubisoft",
screenshots: [
"1.jpg",
"2.jpg"
],
dates: {
eu: "59.99",
us: "39.99"
},
],
added: "2014/12/31"
}

这是关闭的,但不完全是我需要的。日期的格式需要稍有不同。像这样:

{
name: "game1",
publisher: "ubisoft",
screenshots: [
"1.jpg",
"2.jpg"
],
dates: [
{
eu: "59.99"
},
{
us: "39.99"
}
],
added: "2014/12/31"
}

我尝试向 $dates 数组添加更多维度,但这仍然不能提供完全正确的输出。不幸的是,json_encode() 函数的 php 手册没有提供太多帮助,而且我在 google 搜索中发现的 php 中更复杂的 json 编码的文档很少。

任何帮助将不胜感激。

【问题讨论】:

  • 请发布实际的 JSON。你的括号不平衡。
  • 为什么要在dates: 数组中使用不同键的对象?由于您不知道密钥,这不会使访问值变得困难吗?
  • @Barmar - 感谢您的快速回复。抱歉,我已经编辑了所需的输出。它是手写的,我弄错了。此外,我的一个与 Json 合作的朋友给了我一个非常具体的规范,说明他希望 Json 如何读取。我对 Json 几乎一无所知,也不知道他为什么需要它,所以我真的很惊讶我能走到这一步!
  • 原始输出也有不匹配的括号。 added: 上方的关闭 ] 没有开头 [。

标签: php arrays json


【解决方案1】:

将$dates 分配更改为:

$dates = array(array('eu' => '59.99'), array('us' => '39.99'));

【讨论】:

  • 非常感谢您的快速回复和帮助:)
【解决方案2】:

你需要做这样的事情(将每个日期包装在它自己的关联数组中)

array( 
   array('eu' => '59.99'),
   array('us' => '39.99')
);

然后它将正确编码为

[
   {'eu' : '59.99'},
   {'us' : '39.99'}
]

真的很简单,带有数字(自然)键的数组只是[ ],关联数组是{ key : value }

【讨论】:

    【解决方案3】:
    $ss = array('1.jpg', '2.jpg');
    $dates[] = array('eu' => '59.99');
    $dates[]=array('us' => '39.99');
    $array1 = array('name' => 'game1', 'publisher' => 'ubisoft', 'screenshots' => $ss, 'dates' => $dates, 'added' => '2014/12/31');
    echo json_encode($array1);
    

    【讨论】:

      猜你喜欢
      • 2012-07-28
      • 1970-01-01
      • 1970-01-01
      • 2016-01-24
      • 2021-12-13
      相关资源
      最近更新 更多