繁体   English   中英

嵌套字典对象json序列化

[英]Nested Dictionary objects json serialization

我正在使用django rest框架以json格式返回jquery的响应。 我有一个字典对象,其中包含另一个字典对象:

items = {
         ['name':'Chairs','options':{'type':'office','price':100}],
         ['name':'Tables','options':{'type':'office','price':45}],
}

response = Response( json.dumps(output_items) , status=status.HTTP_200_OK)

在JavaScript方面,我正在使用以下代码:

var array = JSON.parse(json);

这不是解析JSON,而是在创建错误。

我想创建这种json格式:

{
                "1": {
                    "name": "Chairs",
                    "description": "All chairs",
                    "options": {
                        "1":{"type": "Office", "price": 130 },
                        "2":{"type": "Home", "price": 75 },
                        "3":{"type": "Shop", "price": 100 }
                    }
                },
                "2": {
                    "name": "Tables",
                    "description": "table description",
                    "options": {
                        "1":{"type": "Office", "price": 240 },
                        "2":{"type": "Home", "price": 200 },
                        "3":{"type": "Shop", "price": 180 }
                    }
                }
            }

我使用python字典和列表对象存储了所有数据,如何从字典数据创建此格式的json输出字符串?

您的对象“项目”中有错误。 试试这个

items = [
         {'name':'Chairs','options':{'type':'office','price':100}},
         {'name':'Tables','options':{'type':'office','price':45}},
]

您在dict的创建过程中遇到了错误['name':'Chairs','options':{'type':'office','price':100}]这不是一对键:value

这不是正确的json或Python对象。 Python列表不能使用命名参数。 只有字典可以接受键,值对。 如果要查找列表,则必须将字典添加到列表中,而不是作为键值对。 这些项目应该是这样的:

字典清单

items = [
     {"name":"Chairs","options":{"type":"office","price":100}},
     {"name":"Tables","options":{"type":"office","price":45}},
]

(或)词典字典

items = {
      "first":{"name":"Chairs","options":{"type":"office","price":100}},
      "second":{"name":"Tables","options":{"type":"office","price":45}}
}

您没有按照别人的建议正确执行操作,可以在浏览器的控制台中进行测试,只需输入

x={'type':'office','price':100}
//Object {type: "office", price: 100}
y={'type':'office','price':45}
//Object {type: "office", price: 45}
opt1={'type':x}
//Object {type: Object}
opt2={'type':y}
//Object {type: Object}
val1={'name':'Chairs', 'options':opt1}
//Object {name: "Chairs", options: Object}
val2={name:'tables','options':opt2}
//Object {name: "tables", options: Object}
items={'1':val1,'2':val2}

您将拥有所需的数据格式,并且也将获得有关如何编制数据的想法。 希望能帮助到你

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM