Php 使用Symfony2 JMS序列化程序包将JSON响应解析为类

Php 使用Symfony2 JMS序列化程序包将JSON响应解析为类,php,symfony,jmsserializerbundle,jms-serializer,data-mapping,Php,Symfony,Jmsserializerbundle,Jms Serializer,Data Mapping,在Symfony2中,我有一个地址实体和一个地址列表实体。AddressList实体生成地址实体的集合。我有一个JSON响应,需要映射到AddressList实体 使用JMS序列化程序映射时,AddressList始终返回null,如下所示: $this->get('jms_serializer')->deserialize($json, 'Foo\Bar\AddressList', 'json'); 现在我知道,如果我在JSON响应的根级别添加一个键(地址),那么它就可以很好地工

在Symfony2中,我有一个地址实体和一个地址列表实体。AddressList实体生成地址实体的集合。我有一个JSON响应,需要映射到AddressList实体

使用JMS序列化程序映射时,AddressList始终返回null,如下所示:

$this->get('jms_serializer')->deserialize($json, 'Foo\Bar\AddressList', 'json');
现在我知道,如果我在JSON响应的根级别添加一个键(地址),那么它就可以很好地工作,因为它可以映射到响应对象中的键,即

{"addresses":[{...},{...}]}
但我希望它能处理如下所示的孤立对象数组

谢谢大家!

JSON响应:

[{
  "property": "foo",
  "street": "bar",
  "town": "baz",
  "postcode": "123120"
},{
  "property": "baz",
  "street": "foo",
  "town": "bar",
  "postcode": "987654"
}]
以下是地址实体:

<?php
namespace Foo\Bar;
class Address
{
    public $property;
    public $street;
    public $town;
    public $postcode;
    ...
    // Getters Setters
}

我认为您的require response[{…},{…}]是无效的。您找到答案了吗?如果是的话,如果你把它贴出来就好了:-)不幸的是没有。正如我在问题中提到的,我必须修改JSON响应。它可能在最近的更新中有修复,但我还没有尝试过。如果我遇到任何解决方案,我会在这里发布更新。
<?php
namespace Foo\Bar;
use JMS\Serializer\Annotation\Type;
class AddressList
{
    /**
     * @Type("array<Foo\Bar\Address>")
     */
    public $addresses;
    ...
    // Getters Setters
}