栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

如何使用重复键动态生成JSON对象?

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

如何使用重复键动态生成JSON对象?

据我所知,

{"a": "b", "a": "c"}
实际上是根据RFC
4627的
有效 JSON

对象结构表示为一对大括号,包围着零个或多个名称/值对(或成员)。名称是一个字符串。每个名称后都有一个冒号,将名称与值分开。单个逗号将值与后面的名称分开。对象中的名称
唯一。

…其中应表示:

3.应该。这个词,或形容词“推荐”,意味着在特定情况下可能存在忽略特定项目的正当理由,但是在选择其他课程之前,必须理解并仔细权衡所有含义。

是的,基本上 可以 做到,这是 合法的
,但这也是一个坏主意。不同的JSON解码器可能会以不同的方式和/或以不希望的方式处理这种情况。查看规范对解析器的要求:

JSON解析器将JSON文本转换为另一种表示形式。JSON解析器 必须 接受所有符合JSON语法的文本。JSON解析器 可以
接受非JSON形式或扩展名。

一个实现 可以 对其接受的文本大小设置限制。一种实现 可以 对最大嵌套深度设置限制。一个实现 可以 对数字范围设置限制。一个实现
可以 对字符串的长度和字符内容设置限制。

…但实现不 具有 到三立处理这种情况。例如:

# Python 2.7>>> import json>>> json.JSonDeprer().depre('{"a": "b", "a": "c"}')`{u'a': u'c'}`# Chrome 32> JSON.parse('{"a": "b", "a": "c"}')Object {a: "c"}

…以及其他实现可能会合法地给您(以Python表示法):

  • {“ a”:“ b”}

  • [(“ a”,“ b”),(“ a”,“ c”)]

  • [(“ a”,[“ b”,“ c”])]

  • []

  • 42

  • “您的JSON不好,您应该感到难受”

…或者只是好的旧式鼻部守护程序。从字面上看,JSON解析器在这里所​​做的唯一非法的事情就是引发异常。

您在生产代码中要做的最后一件事是依靠怪异的情况。因此,您要做的最后一件事是行使您的权利,以形成名义上合法但实际上无用的JSON。如果要执行此操作,则必须手动进行-
建立自己的抽象语法树,自己的解析器,自己的生成器,为任何可能想要使用您的数据的人生成器…



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/409873.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号