V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
iOS 开发实用技术导航
NSHipster 中文版
http://nshipster.cn/
cocos2d 开源 2D 游戏引擎
http://www.cocos2d-iphone.org/
CocoaPods
http://cocoapods.org/
Google Analytics for Mobile 统计解决方案
http://code.google.com/mobile/analytics/
WWDC
https://developer.apple.com/wwdc/
Design Guides and Resources
https://developer.apple.com/design/
Transcripts of WWDC sessions
http://asciiwwdc.com
Cocoa with Love
http://cocoawithlove.com/
Cocoa Dev Central
http://cocoadevcentral.com/
NSHipster
http://nshipster.com/
Style Guides
Google Objective-C Style Guide
NYTimes Objective-C Style Guide
Useful Tools and Services
Charles Web Debugging Proxy
Smore
jaylee4869
V2EX  ›  iDev

Swift 解析这种 JSON 非常耗性能吗?

  •  
  •   jaylee4869 · 2019-12-10 12:02:33 +08:00 · 10775 次点击
    这是一个创建于 1804 天前的主题,其中的信息可能已经有所发展或是发生改变。
        "gender": [
          {
            "1": "男"
          },
          {
            "2": "女"
          }
        ],
        "relationship": [
          {
            "0": "妈妈"
          },
          {
            "1": "爸爸"
          },
          {
            "2": "奶奶"
          },
          {
            "3": "爷爷"
          },
          {
            "4": "姥姥"
          },
          {
            "5": "姥爷"
          },
          {
            "6": "其他"
          }
        ]
    
    jaylee4869
        1
    jaylee4869  
    OP
       2019-12-10 12:04:44 +08:00
    主要用作数据字典,有人和我说 iOS 端遇到这种数据非常难受。。
    tulongtou
        2
    tulongtou  
       2019-12-10 12:05:04 +08:00 via iPhone
    key 为什么用字符串形式,明明已经是数字了
    rrfeng
        3
    rrfeng  
       2019-12-10 12:07:49 +08:00
    谁能告诉我这种数据结构有什么优势吗?列表不用 index,非要创建个嵌套的玩意儿用 index 当 key ?
    jaylee4869
        4
    jaylee4869  
    OP
       2019-12-10 12:08:18 +08:00 via iPhone
    @tulongtou key 后面可能会有字符串类型,不一定全是数字
    jaylee4869
        5
    jaylee4869  
    OP
       2019-12-10 12:09:58 +08:00 via iPhone
    @rrfeng #4
    randyo
        6
    randyo  
       2019-12-10 12:11:46 +08:00 via Android
    一个数组里面的数据却不是同一类型的,什么需要都头疼吧
    passerbytiny
        7
    passerbytiny  
       2019-12-10 12:13:35 +08:00
    你把数据库种的关系数据模型,原封不动的弄成 json 传过去。我告诉你不光 IOS 难受,所有面向对象的语言遇到都难受。
    解析 JSON 不耗性能,但是解析之后用起来就非常耗性能了。
    finab
        8
    finab  
       2019-12-10 12:15:07 +08:00
    说下使用场景吧,这个 json 确实挺怪的,和性能没关系,使用上很麻烦

    要不就做成字典,别数组里嵌套个一个 key 的字典,用 key 找起来也麻烦啊

    如果数组里的字典,字段还不一样,那就更难处理了。可以考虑换个更容易使用的数据结构
    finab
        9
    finab  
       2019-12-10 12:17:47 +08:00
    比如 我想找到 编号为 3 对应的 爷爷
    得遍历数组,再遍历字典的 keys , 找出是否有 key 为 “3” 的 键值对,然后才能取出 爷爷
    wjh3936
        10
    wjh3936  
       2019-12-10 12:21:30 +08:00
    后台搞这种会被我们骂的。。不光 iOS 难受
    Mohanson
        11
    Mohanson  
       2019-12-10 12:22:53 +08:00
    此种数据结构看了想打人有没有!
    cxe2v
        12
    cxe2v  
       2019-12-10 12:23:04 +08:00
    这一看就是后端的枚举类型转过来的,这样用起来挺难受的,还是用键值对的数组吧
    Tomey
        13
    Tomey  
       2019-12-10 12:26:01 +08:00
    会被打是真的
    eGlhb2Jhb2Jhbw
        14
    eGlhb2Jhb2Jhbw  
       2019-12-10 13:10:46 +08:00
    性能耗不耗是不知道,就是有点耗键盘和脑子
    queuey
        15
    queuey  
       2019-12-10 13:19:59 +08:00
    看了想打人
    0x000007
        16
    0x000007  
       2019-12-10 14:00:40 +08:00
    PHP 后台?
    auhah
        17
    auhah  
       2019-12-10 14:55:07 +08:00
    php 写的吧。。。。
    tbwisk
        18
    tbwisk  
       2019-12-10 16:58:35 +08:00
    "gender": [
    {
    "idx":"1",
    "value":"男"
    },
    {
    "idx":"2",
    "value":"女"
    }
    ],
    "relationship": [
    {
    "idx":"0",
    "value":"妈妈"
    },
    {
    "idx":"1",
    "value":"爸爸"
    }
    ]
    jorneyr
        19
    jorneyr  
       2019-12-10 17:24:23 +08:00
    定义 Bean 的时候变量名能用 0, 1, 2, 3 吗?
    wangyifei6817
        20
    wangyifei6817  
       2019-12-10 18:12:36 +08:00
    这个后台脑子性能不太行?
    promisenev
        21
    promisenev  
       2019-12-11 10:24:49 +08:00
    @wangyifei6817 抓住了重点,图自己省心,或者就是没经验
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3243 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 00:45 · PVG 08:45 · LAX 16:45 · JFK 19:45
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.