MacDev 板


LINE

补充3: 似乎有人有同样问题 google "OrderedDictionary ios" 有兴趣的人也可以看看罗 补充2 找了一个晚上 似乎不改资料面应该是无解了 找google还满多人有同样的问题 但最终都是妥协改资料面为array http://ppt.cc/8NHV 其实同样的问题 就算不是json 若是从plist读进来 NSDictionary的allkeys也是不会按顺序 目前先朝利用人脉去改server端的回传格式好了(哭 补充: 如果资料如下 { "Level": "3", "Name": "testLogger", "IPADDRESS": "testMachiene", "Message": "hiiiiiiiiii", "TimeStamp": "test12345678" } 转成NSDictionary时有可能会变成如下(顺序不同): { "Name": "testLogger", "TimeStamp": "hiiiiiiiiii", "Message": "test12345678", "Level": 3, "IPADDRESS": "testMachiene" } 我明白json有定义若为一群object 本来就没有确保顺序 有方法可以确保顺序吗? ======================== 请问一下 在ios作解析json的资料时 若资料是很多object而不是用array包起来 "有方法"在转成NSDictionary时, NSDictionary里的顺序跟json的资料里的顺序一样吗? 效能差一点没关系 谢谢 --



※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 114.32.190.119
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/MacDev/M.1430297603.A.B7B.html
1F:推 neotek: 怎麽看不太懂 04/29 16:57
2F:→ neotek: 你是用NSJSONSerilizer把string转json? 04/29 17:14
3F:→ yr: NSDictionary 算是 hash table ,没什麽顺序不顺序的 04/29 17:14
4F:→ yr: 不在意效能你可以改用 NSArray 来存 04/29 17:15
5F:→ darktt: 问题是Dictionary的顺序有差别吗?用key就可以控制顺序啊 04/29 19:00
某些原因,APP的呈现面需按照server给的资料顺序 我试过用android可以 但ios似乎一定会乱排,可能是为了效能吧
6F:→ darktt: 不然就将key按顺序装进array,之後用for in取值就好了 04/29 19:03
key值是动态的(可能为a, b, c也可能是 e, f g, 不一定, 所以没有规则可以在client先排序) 我是用allkeys取得所有的key: NSDictionary* dataJSON = (server端取回来的资料); NSArray *keys = [dataJSON allKeys]; 这边取出key就没有按顺序了
7F:→ hearther: http://ppt.cc/QDVS 很久以前的文了,不过记得当时是wor 04/29 21:47
8F:→ yuanruo: 都存到Dictionary里了 顺不顺序根本没差吧 04/29 22:10
9F:→ yuanruo: 你是用key去取值又不是用回圈去取Dictionary里的值 04/29 22:11
10F:→ howdiun: JSON改成[{XX:XX},{XX:XX}]的格式或是加入order的参数 04/30 09:09
我知道资料面改成array就解了 但..一些原因改资料是最後解
11F:推 neotek: allkeys本来就不会有顺序呀~~请参考文件 04/30 09:58
12F:→ neotek: http://goo.gl/vvrrWd 04/30 09:58
13F:→ neotek: The order of the elements in the array is not defined. 04/30 09:58
这我早就知道了哦 所以才想问有没有能取出原顺序的方法
14F:→ nobody1: 多一个栏位"sort" 再自已去排 04/30 10:38
15F:→ yr: 这就是典型的用错资料结构又不知道,然後又想从这个用错的 04/30 13:24
16F:→ yr: 资料结构去输出成自己想要的输出。 04/30 13:24
17F:→ yr: 要不你自己想办法排序,要不换资料结构,自己挑一个。 04/30 13:25
yr的火气很大哦? 这资料虽然是别人给的 但我觉得并不能算错 因为从别的角度它有其他优点 什麽样的优点就不提了 一件事没那麽只有2面 anyway 找到一篇看似的解法 google "OrderedDictionary ios" 也有其他人有同样的问题 若有人有类似问题也可以从这个角度去看
18F:推 neotek: 原始资料应该是String拿下来之後再转JSON吧 04/30 14:13
19F:→ neotek: 用regex把key筛出来,存进array,dictionary顺序不管他 04/30 14:14
20F:→ neotek: 之後要取value,用for in把key找出来,再去dict取 04/30 14:14
是没错 是先转成NSString 请问一下regex要怎麽取key呢? 有什麽方向可以看吗?
21F:→ neotek: 不过最简单还是加一个order栏位吧~~ 04/30 14:16
其实是钱的问题啦 加一个order要多花钱 且Android(java有语法可用)可以 公司就不想为了ios特别额外出钱 ※ 编辑: fightword (114.32.190.119), 04/30/2015 14:25:30
22F:推 neotek: 提供一点想法 http://goo.gl/zm5cmu 04/30 14:48
23F:→ neotek: 测试用的json:http://goo.gl/89EvFh 04/30 14:49
24F:→ neotek: 我假设你回来的资料都是用array包起来的object 04/30 14:49
25F:→ neotek: 全部都是dictionary应该也可以, 关键是取每个object出来 04/30 14:50
26F:→ neotek: 我是用"},"当作分隔,你的资料长怎样我就不知道了 04/30 14:50
27F:→ neotek: 所以要确保每笔object可以正确分开来,接下来就没啥问题了 04/30 14:51
28F:→ neotek: 我不太会写regex,所以不会把每笔object的key group起来o_o 04/30 14:52
29F:→ neotek: 剩下就交给版上神人惹 04/30 14:52
30F:推 Blueshiva: sever不给你order,自己建就好啦...反正抓回来的就是字 04/30 15:24
31F:→ Blueshiva: 串,自己把所有的key抓出来,然後再把字串丢去转成Dic 04/30 15:24
32F:→ Blueshiva: 最後再自己加个order的key到这个dic去 04/30 15:25
33F:→ Esvent: parse的时候顺便把顺序记起来就可以了吧? 05/01 13:06
34F:推 Blueshiva: 问题是现在绝大多数人都是用lib解json,大概都忘记这东 05/01 17:21
35F:→ Blueshiva: 西可以自己做... 05/01 17:21







like.gif 您可能会有兴趣的文章
icon.png[问题/行为] 猫晚上进房间会不会有憋尿问题
icon.pngRe: [闲聊] 选了错误的女孩成为魔法少女 XDDDDDDDDDD
icon.png[正妹] 瑞典 一张
icon.png[心得] EMS高领长版毛衣.墨小楼MC1002
icon.png[分享] 丹龙隔热纸GE55+33+22
icon.png[问题] 清洗洗衣机
icon.png[寻物] 窗台下的空间
icon.png[闲聊] 双极の女神1 木魔爵
icon.png[售车] 新竹 1997 march 1297cc 白色 四门
icon.png[讨论] 能从照片感受到摄影者心情吗
icon.png[狂贺] 贺贺贺贺 贺!岛村卯月!总选举NO.1
icon.png[难过] 羡慕白皮肤的女生
icon.png阅读文章
icon.png[黑特]
icon.png[问题] SBK S1安装於安全帽位置
icon.png[分享] 旧woo100绝版开箱!!
icon.pngRe: [无言] 关於小包卫生纸
icon.png[开箱] E5-2683V3 RX480Strix 快睿C1 简单测试
icon.png[心得] 苍の海贼龙 地狱 执行者16PT
icon.png[售车] 1999年Virage iO 1.8EXi
icon.png[心得] 挑战33 LV10 狮子座pt solo
icon.png[闲聊] 手把手教你不被桶之新手主购教学
icon.png[分享] Civic Type R 量产版官方照无预警流出
icon.png[售车] Golf 4 2.0 银色 自排
icon.png[出售] Graco提篮汽座(有底座)2000元诚可议
icon.png[问题] 请问补牙材质掉了还能再补吗?(台中半年内
icon.png[问题] 44th 单曲 生写竟然都给重复的啊啊!
icon.png[心得] 华南红卡/icash 核卡
icon.png[问题] 拔牙矫正这样正常吗
icon.png[赠送] 老莫高业 初业 102年版
icon.png[情报] 三大行动支付 本季掀战火
icon.png[宝宝] 博客来Amos水蜡笔5/1特价五折
icon.pngRe: [心得] 新鲜人一些面试分享
icon.png[心得] 苍の海贼龙 地狱 麒麟25PT
icon.pngRe: [闲聊] (君の名は。雷慎入) 君名二创漫画翻译
icon.pngRe: [闲聊] OGN中场影片:失踪人口局 (英文字幕)
icon.png[问题] 台湾大哥大4G讯号差
icon.png[出售] [全国]全新千寻侘草LED灯, 水草

请输入看板名称,例如:BuyTogether站内搜寻

TOP