2012-11-28 36 views
20

Tôi cần phải ghi dữ liệu JSON vào một tệp bằng cách sử dụng Objective-C. Dữ liệu của tôi trông giống như sau:Tôi có thể ghi dữ liệu JSON vào một tệp trong iOS/Objective-C không?

data = { 
    "NrObjects" : "7", 
    "NrScenes" : "5", 
    "Scenes" : [ 
     { "dataType" : "label", "position" : [20, 20, 300, 300], "value" : "Hello" }, 
     { "dataType" : "label", "position" : [20, 60, 300, 300], "value" : "Hi There" } 
    ] 
} 

Nó có thể trở nên phức tạp hơn này, nhưng những gì tôi cần biết là liệu tôi có thể làm điều này với obj-C, tức là tạo ra một đối tượng của hình thức này, viết dữ liệu vào một tệp và đọc lại.

Trả lời

27

Có một lớp học đặc biệt được thực hiện cho việc này, được gọi là NSJSONSerialization.

Bạn đọc nó như thế này:

NSArray* jsonResponse = [NSJSONSerialization JSONObjectWithData:theResponse 
                 options:kNilOptions 
                  error:&error]; 

và viết nó như thế này:

NSData* jsonData = [NSJSONSerialization dataWithJSONObject:userDetails 
                options:kNilOptions 
                error:&error]; 
+3

Chỉ cần thêm: API này có sẵn trong iOS 5 trở lên – Saurabh

+0

Cảm ơn rất nhiều. Tôi không biết điều đó tồn tại trong Obj-C. Đó chính xác là những gì tôi cần. –

+0

@ IIS7Rewrite nếu câu trả lời này hữu ích cho bạn, xin đừng quên đánh dấu nó là chấp nhận, cảm ơn. – Pochi

4

viết:

NSData *data = [NSKeyedArchiver archivedDataWithRootObject:jsonObject]; 
[data writeToFile:path atomically:YES]; 

đọc:

NSData *data = [NSData dataWithContentsOfFile:path]; 
NSDictionary *jsonObject = [NSKeyedUnarchiver unarchiveObjectWithData:data]; 
Các vấn đề liên quan