我有一个客观的C类,
@interface message : NSObject {
NSString *from;
NSString *date;
NSString *msg;
}
Run Code Online (Sandbox Code Playgroud)
我有一个NSMutableArray这个消息类的实例.我想使用iOS 5 SDK中的新JSONSerialization API将NSMutableArray中的所有实例序列化为JSON文件.我怎样才能做到这一点 ?
是通过迭代NSArray中每个元素的实例来创建每个键的NSDictionary吗?有人可以帮助解决这个问题的代码吗?我无法在Google中取得好成绩,因为"JSON"会将结果偏向服务器端调用和数据传输而不是序列化.非常感谢.
编辑:
NSError *writeError = nil;
NSData *jsonData = [NSJSONSerialization dataWithJSONObject:notifications options:NSJSONWritingPrettyPrinted error:&writeError];
NSString *jsonString = [[NSString alloc] initWithData:jsonData encoding:NSUTF8StringEncoding];
NSLog(@"JSON Output: %@", jsonString);
Run Code Online (Sandbox Code Playgroud) 我觉得这是一个愚蠢的问题,但无论如何我都会问...
我有一组NSDictionary对象,其键/值对对应于我创建的自定义类,调用它MyClass.有一种简单或"最佳实践"的方法让我基本上做MyClass * instance = [地图NSDictionary属性的事情MyClass ];吗?我有一种感觉,我需要做一些事情,NSCoding或者NSKeyedUnarchiver,而不是自己偶然发现,我认为那里的人可能能指出我正确的方向.
SO上有很多问题和答案,我们如何在目标c中将对象序列化.
以上链接中都提到了以下3种方法.
1)用于NSJSONSerialization将对象序列化为JSON.看起来不错但这要求所讨论的对象在其顶层是数组或字典.常见的解决方案是声明循环遍历属性的自定义toDictionary或serialise方法,并设置相关的键和值.
2)符合NSCoder协议,有点像上面的方法,但似乎有一些混淆围绕这是否可以串行到JSON或只是NSData.
3)第三方图书馆.
我对于采取什么方法感到有些困惑.我想序列化为JSON,有一些相互矛盾的答案,说明你可以使用NSCoder一些人说不.我知道第三方应用程序可以工作,但我宁愿实现像选项1或2这样简单的东西.
思考?
我已经尝试了很多库,Alamofire,JsonHelper,ObjectMapper等...但不幸的是,我不能将json集合响应映射到对象类.我开发了一个带有swift 1.2和xcode 6.3的IOS 8应用程序,我的模型的两个类是:
Club.swift
class Club {
var id: String = ""
var name: String = ""
var imageUrl: String = ""
var hasVip: Bool = false
var desc: String = ""
var location: [Location] = []
}
Run Code Online (Sandbox Code Playgroud)
Location.swift
class Location {
var country: String = ""
var city: String = ""
var address: String = ""
var zip: String = ""
var underground: [String] = []
}
Run Code Online (Sandbox Code Playgroud)
我有另一个类要求我的API:
apliClient.swift
class ApiClient {
var clubs = [Club]?()
func getList(completionHandler: …Run Code Online (Sandbox Code Playgroud) json ×3
ios ×2
objective-c ×2
alamofire ×1
collections ×1
iphone ×1
nsarray ×1
nsdictionary ×1
swift ×1