1
sharpnk 2013-09-05 22:06:55 +08:00 1
为什么不给user做一个model,然后用你的raw json直接map过去?
然后就是你的 [arrayName objectAtIndex:i].address.city |
2
txx 2013-09-05 22:21:21 +08:00 via iPhone 1
字典效率不如 model化啊。用字典是 不好的习惯 特别是在游戏里
|
3
tgfbeta 2013-09-05 22:24:25 +08:00
[NSJSONSerialization JSONObjectWithData:data
options:NSJSONReadingMutableContainers|NSJSONReadingMutableLeaves error:nil]; |
4
refresh OP |
5
refresh OP |
6
cloudream 2013-09-05 22:43:29 +08:00 1
ios7里objective-c可以和js互动了……
JSContext* context = [[JSContext alloc] init]; [context evaluateScript:@"console.log(\"Hello JavaScript\")"]; |
7
tgfbeta 2013-09-05 22:45:59 +08:00
#import <Foundation/Foundation.h>
NSString *jsonString = @"{\"user\":[{\"role\": [1, 3, 4],\"address\":{\"city\": \"biejing\"}}]}"; int main(int argc, const char * argv[]) { @autoreleasepool { // insert code here... NSLog(@"Hello, World!"); NSData *data = [jsonString dataUsingEncoding:NSUTF8StringEncoding]; NSError *err; NSMutableDictionary * dict = [NSJSONSerialization JSONObjectWithData:data options:NSJSONReadingMutableContainers error:&err]; dict[@"user"][0][@"address"][@"city"] = @"Shanghai"; NSLog(@"%@",dict); } return 0; } |
10
tgfbeta 2013-09-05 23:05:46 +08:00
|
11
dorentus 2013-09-05 23:15:13 +08:00
Model framework for Cocoa and Cocoa Touch
https://github.com/github/Mantle 我最近的项目在用这个做 JSON dictionary <==> model class |
12
PrideChung 2013-09-06 00:10:28 +08:00
Foundatin提供的数据结构要转换为mutable就一个mutableCopy的事,能有多麻烦,难道你不知道数组和字典的新下标语法么。
|
13
alexrezit 2013-09-06 08:52:51 +08:00
只能说明你菜, 不能说明它麻烦.
|
14
refresh OP @alexrezit 我认同这个结论
@PrideChung 我知道定义词典和NSArray可以用@{}与@[],也知道NSArray可以用[index]的方式取,但不知道dict也可以这样,确实方便很多。 @tgfbeta 准备改成property的方式,有必要么? @dorentus 看上去似乎不错 谢谢各位老师 |
15
refresh OP 再问一个菜鸟问题,对于JSON的字段名称,你们是专门建一个类,内建各种字段做影射,还是用define或者static呢?
我现在是建一个类,然后用类方法返回字段的名称。比如说: 1. json = {user: "uname"} 2. mapping: +(NSString*) userField{ return @"user"; } 或者用这样: static NSString *kJSONFieldUser = @"user"; 或者: #define kJSONFieldUser @"user" 各位老师,你们是怎么处理? @PrideChung @tgfbeta @alexrezit @cloudream |
17
refresh OP @alexrezit 不是想用ORM,对于JSON中的字段名,因为经常要用,直接用@"user"肯定不合适,所以固定下来。
|
18
alexrezit 2013-09-06 09:21:37 +08:00
|
23
PrideChung 2013-09-06 18:02:12 +08:00
@refresh 我一般都选择自己把JSON返回的数据map成一个类。如果你确实要用字符串下标的话,用常量字符串,不要用宏定义。
|
24
0day 2013-09-06 21:28:09 +08:00
|
26
PrideChung 2013-09-06 21:31:17 +08:00
|
27
0day 2013-09-06 21:34:10 +08:00
@PrideChung 不会多难,不用 Core Data 存储,不考虑 RESTful 的话,自己写就 OK 了。只是看写到多范型的问题。
|
29
lex 2013-09-06 21:35:20 +08:00
|
31
PrideChung 2013-09-06 21:56:56 +08:00
|
32
0day 2013-09-06 21:59:02 +08:00
@PrideChung 追求 lightweight 没错的,不过觉得结构不复杂这个,我倒是觉得要重新审视了!
|
33
lovebirdegg 2013-09-06 22:33:37 +08:00
弱弱的问一下 这个modle化是什么意思
|
34
BB9z 2013-09-25 13:01:49 +08:00
可以试试 https://github.com/icanzilb/JSONModel ,我感觉比 Mantle 要好用,不过代码有点搓。
|