当php中的数组为空时,json_encode函数返回大括号{}

时间:2017-01-06 09:36:39

标签: php json xml

我正在使用json_encode将数组转换为json。但是如果某些键的值为空,则json会给大括号{}。我希望值应为null或""空白。请帮忙。下面是代码:

public class CodelistFilters
{    
    [XmlElement("Group")]
    public List<Group> Groups { get; set; }
}

public class Group
{
    [XmlAttribute]
    public string Relationship { get; set; }

    [XmlElement("Group")]
    public List<Group> Groups { get; set; }

    [XmlElement("CodelistFilter")]
    public List<CodelistFilter> CodelistFilters { get; set; }
}

public class CodelistFilter
{
    [XmlAttribute]
    public string Name { get; set; }

    [XmlAttribute]
    public string Value1 { get; set; }

    [XmlAttribute]
    public string Value2 { get; set; }
}

1 个答案:

答案 0 :(得分:2)

这是因为你的$dealer是一个空数组,在json中与{}相同

使用三元

'dealer'=>((!$dealer) ? $dealer : null)

这意味着如果$dealer为空,请指定一个null,它会将您的空数组或json中的{}更改为null

$data=array('dealer'=>((!$dealer) ? $dealer : null));

echo  $objectJson =json_encode($data);

如果您只是显示它而不再在下面的代码中再次使用它,请避免声明它而只是显示它

echo json_encode($data);