在Objective C中按顺序保存JSON Object的字典键

Alv*_*eng 3 json key objective-c nsdictionary

我在目标C中使用JSON-FRAMEWORK来解析JSON对象.当我调用[jsonString JSONValue]时,我得到一个字典,但是键与我正在解析的JSON对象的顺序不同.无论如何要保持这个顺序相同吗?

Hen*_*olm 17

在JSON对象中,根据定义,键值对的顺序没有意义.该规范允许JSON生成器以任何方式置换它们,即使是随机的 - 并且不需要解析器来保留排序.RFC 4627说:

对象是零个或多个名称/值对的无序集合,其中名称是字符串,值是字符串,数字,布尔值,空值,对象或数组.

如果您需要保留订单,那么您拥有的不是JSON,而是一种家庭定义的格式,恰好看起来像JSON.