不能使用stdClass类型的对象作为数组--JSON

时间:2015-04-27 23:08:56

标签: php

我正在使用.json文件,我有以下功能:

class InnerSerializer(serializers.ModelSerializer):
    class Meta:
        model = Inner
        fields = ('x', 'y')


class CostumeSerializer(serializers.ModelSerializer):

    inner = InnerSerializer()

    class Meta:
        model = MyModel
        fields = ('code', 'inner')

    def create(self, validated_data):
        inner = validated_data.pop('inner')
        return MyModel.objects.create(inner_x=inner.get('x', None), inner_y=inner.get('y', None), **validated_data)

每当我运行使用该函数的代码时,我都会收到以下错误:

  

致命错误:不能将stdClass类型的对象用作...中的数组

1 个答案:

答案 0 :(得分:2)

json_decode 的第二个参数默认为 false ,这意味着它会生成一个对象。使用 true 生成数组。

错误来自$json[$username],您将 $ json 作为数组访问。当它是一个对象时,您可以像访问它一样访问它:$json->$username