我把JSON写到我的文件中:

NSData *jsonData = [[CJSONSerializer serializer] serializeObject:dictionary error:&error];
[jsonData writeToURL:[NSURL fileURLWithPath:[NSString stringWithFormat:@"%@%@",
NSTemporaryDirectory(), @"file.json"]] atomically:YES];

但是我怎么读回来呢?

我尝试将文件加载到NSData中,然后像这样转换为NSDictionary

    // uses toll-free bridging for data into CFDataRef and CFPropertyList into NSDictionary
CFPropertyListRef plist =  CFPropertyListCreateFromXMLData(kCFAllocatorDefault, (CFDataRef)data,
                                                           kCFPropertyListImmutable,
                                                           NULL);
// we check if it is the correct type and only return it if it is
if ([(id)plist isKindOfClass:[NSDictionary class]])
{
    return [(NSDictionary *)plist autorelease];
}
else
{
    // clean up ref
    CFRelease(plist);
    return nil;
}

但它崩溃了,因为我认为NSData不是一个plist。

CJSONSerializer有一个方法从文件中提取数据并帮我将其转换为字典吗?

谢谢-Code

===============>>#1 票数:2 已采纳

serializer for the opposite direction. 您使用序列化程序将对象转换为JSON,并将 serializer用于相反方向。 事实上,TouchJSON有一个CJSONDeserializer类:

[[CJSONDeserializer deserializer] deserialize:data error:NULL];

===============>>#2 票数:1

您需要使用CJSONDeserializer进行解析, CJSONSerializer仅用于生成JSON。

===============>>#3 票数:0

您可以使用NSJSONSerialization将JSON文件读取到NSData,然后也转换为nsdictionary。

-(NSDictionary*)dictionaryWithContentsOfJSONString:(NSString*)fileLocation
{

   NSString *filePath = [[NSBundle mainBundle] pathForResource:[fileLocation stringByDeletingPathExtension] ofType:[fileLocation pathExtension]];
   NSData* data = [NSData dataWithContentsOfFile:filePath];
   __autoreleasing NSError* error = nil;
   id result = [NSJSONSerialization JSONObjectWithData:data
                                            options:kNilOptions error:&error];
   if (error != nil) return nil;
   return result;

}

  ask by translate from so

未解决问题?本站智能推荐:

2回复

iPhone写入文件失败

我正在将一些数据写入plist文件,但它在设备上失败,但在模拟器中失败。 我迷路了,不知道在哪里寻找解决方案。 这是我的代码: 该日志在设备上返回0,但在模拟器中返回1。 有人可以帮我吗?
1回复

从JSON生成Xcdatamodel文件

是否可以从json生成xcdatamodel文件? 这是我想像的工作方式:给定JSON文件,并通过带有某些自定义逻辑的程序(可能由我自己编写),将生成xcdatamodel文件供我在XCode项目中使用。 我的问题是:可能吗? 有没有人做过?
2回复

在线检查JSON文件的更新,并将其与本地存储文件进行比较

我在这片树林里走出困境:我有一个通用的,基于导航的应用程序,它显示当前存储在plist文件中的数据。 在将来的版本中,我想将数据库迁移到我的服务器上的JSON文件,应用程序可以将其下载到它的捆绑包,然后解析它。 任何人都可以建议一种简单轻量级的方法来检查捆绑包中当前存储的文件是否与服务器上托
1回复

NSURLconnection和json

我知道这是一个愚蠢的问题,但我不知道该怎么做。 从此链接请求的链接是否可以使用NSURLconnection返回json数据? 我希望有人检查此链接并告诉我是否可行,因为我是新手。 编辑: 我尝试使用NSJSONSerialization 我在控制台中收到此错误消息:
1回复

将元数据写入AVURLAsset吗?

我目前正在编写一个使用AVMediaPlayer播放下载的mp3文件的AVURLAsset表示形式的应用程序。 GUI很大程度上基于文件的元数据,而不是文件名。 访问预先存在的元数据信息没有问题(为此,我只使用AVURLAsset的metadataForFormat:方法),但是我想将新的元
3回复

使用json数据

我有以下代码来解析从服务器接收到的JSON数据: //我认为这不是真正的NSDictionary,因为如果我写NSArray * keys = [usersList allKeys]; 执行崩溃 存储在usersList中的json数据具有以下结构: 我想创建一个类来存
2回复

如何解析Json对象

我被困在json对象解析上,真的很努力。 问题是如何解析json对象。 这是我在日志中得到的响应。 问题是我想在tableview中显示所有标题。 我可以使用键0,1,2获得单个Title。 但是我希望所有的标题在我解析后立即显示 请大家帮帮我,谢谢。
5回复

iPhone SDK上的JSON解析

我有一个特定的json: 对此进行了解析,但是当网络服务器出现错误时,将返回此JSON: 我试过使用这个: 但这是行不通的,因为如果我输出的值是'null'的数组 我该如何检查? (我知道我可以使用NSRange ,但是我认为必须有更好的方法吧? 我这样解析
1回复

iOS JSON数组和MapKit

我正在尝试使用MapKit映射JSON数组。 使用下面的代码,我可以在地图上得到一个点,但是我需要标记很多针,并且准备了一个JSON数组。 我的单点代码如下。 在我的.h文件中: 在我的.m文件中:
3回复

如何写入AppName-Info.plist

我手动在我的AppName-Info.plist中添加了一个名为“ App”的键,可以通过调用此代码从中获取值 但是我无法用任何代码更改值。是否可能? 如果是的话,该怎么办? 预先感谢您的帮助:)