Alg*_*der 1 json objective-c ios ios7
我正在使用以下代码从本地驱动器获取JSON数据。效果很好
现在我想将JSON数据添加到相同的URL
我不想创建和替换以前的json文件
可能吗??
有什么简单的方法吗?
NSURL *fileUrl=[NSURL URLWithString:@"localDriveURL"];
//NSData *data = [NSData dataWithContentsOfFile:filePath];
NSData *data=[NSData dataWithContentsOfURL:fileUrl];
NSError* error;
NSArray* json = [NSJSONSerialization JSONObjectWithData:data //1
options:NSJSONReadingMutableContainers
error:&error];
NSArray *json2=[json valueForKey:@"locations"];
for (int i=0; i<json2.count; i++) {
}
Run Code Online (Sandbox Code Playgroud)
如果该文件是应用程序捆绑包的一部分,则您不能对其进行任何更改。
一般来说,您确实希望替换现有文件。
尽管您可以用来NSFileHandle向文件中写入其他数据,但它相对复杂,并且很可能损坏JSON(当您犯下索引错误或类似的错误时)。
最好的选择是(按原样)读取可变数据,然后进行修改并用于NSJSONSerialization再次转换回数据,然后将该数据保存到磁盘(替换原始数据)。
您当前的代码实际上应该是:
NSMutableArray* json = [...
Run Code Online (Sandbox Code Playgroud)
由于您使用的是可变容器选项。
然后,您可以向数组添加一些新项目:
[json addObject:@"Stuff"];
[json insertObject:@"Other Stuff" atIndex:0];
Run Code Online (Sandbox Code Playgroud)
然后重新保存:
data = [NSJSONSerialization dataWithJSONObject:json options:nil error:&error];
[data writeToURL:fileUrl atomically:YES];
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3303 次 |
| 最近记录: |