我试图parsing一个jsonstring请求从api位于: http : //www.physics.leidenuniv.nl/json/news.php 但是,我有麻烦分析这个JSON。 我得到以下错误: Unexpected end of file during string parse 我已经找了几个小时,但是我找不到这个问题的答案。 我的代码片段: 在我的viewDidLoad中: NSURLRequest *request = [NSURLRequest requestWithURL: [NSURL URLWithString:@"http://www.physics.leidenuniv.nl/json/news.php"]]; [[NSURLConnection alloc] initWithRequest:request delegate:self]; 代表: – (void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)data { NSMutableData *responseData = [[NSMutableData alloc] init]; [responseData appendData:data]; NSString *responseString = [[NSString alloc] initWithData:responseData encoding:NSUTF8StringEncoding]; NSError *e = nil; NSData *jsonData […]
代码如下: NSError *parseError; NSMutableArray *listOfObjects = [NSJSONSerialization JSONObjectWithData:[@"[]" dataUsingEncoding:NSUTF8StringEncoding] options:NSJSONReadingMutableContainers error:&parseError]; NSLog(@"Is mutable? %li", [listOfObjects isKindOfClass:[NSMutableArray class]]); listOfObjects = [NSJSONSerialization JSONObjectWithData:[@"[[],{}]" dataUsingEncoding:NSUTF8StringEncoding] options:NSJSONReadingMutableContainers error:&parseError]; NSLog(@"Is mutable? %li", [listOfObjects isKindOfClass:[NSMutableArray class]]); 正如你所看到的,我调用完全相同的方法来parsingJSON,JSON中有一个空的列表,然后是一个里面有一个对象的列表。 结果如下: Is mutable? 0 Is mutable? 1 问题是,NSJSONSerialization似乎没有遵循选项来创build空列表的可变容器。 对我来说似乎是一个错误,但也许我只是误解了一些东西。 有任何想法吗?
我试图在Swift中用Alamofire做一个GET请求。 我需要设置以下标题: Content-Type: application/json Accept: application/json 我可以绕过它,并直接指定请求的标题,但我想要使用ParameterEncoding ,如库中所build议的。 到目前为止,我有这样的: Alamofire.request(.GET, url, encoding: .JSON) .validate() .responseJSON { (req, res, json, error) in if (error != nil) { NSLog("Error: \(error)") println(req) println(res) } else { NSLog("Success: \(url)") var json = JSON(json!) } } Content-Type设置,但不Accept 。 我怎样才能正确地做到这一点?
我有一个JSONstring,如: { "a":"val1", "b":"val2", "c":"val3" } 我有一个目标C头文件,如: @interface TestItem : NSObject @property NSString *a; @property NSString *b; @property NSString *c; @end 我可以parsingJson并获得TestItem类的实例吗? 我知道如何将jsonparsing成字典,但是我想在类中parsing它(类似于gson在Java中的做法)。
我想从JSON服务获取数据。 从JSON值获取数据时,只有iOS 7版本崩溃。 它从下面的JSON服务返回: { voteAverageRating = 0; voteCount = 0; } 我的代码 int voteCount = [listDic objectForKey:@"voteCount"] intValue] ; _LB_voteNumber.text = [NSString stringWithFormat:@"(%i)",voteCount]; 它的工作iOS 5,5.1,6.0,6.1但它只会崩溃的iOS7版本。 它给了这个错误: 0x00098117 _mh_execute_header [NSNull intValue]:无法识别的select器发送到实例 然后我改变了我的代码, NSString *voteCount = [listDic objectForKey:@"voteCount"] ; _LB_voteNumber.text = [NSString stringWithFormat:@"(%@)",voteCount]; 运行此代码时。 它再次坠毁,只有iOS 7的版本。 它给了这个错误: 0x00098117 _mh_execute_header [NSNull length]:发送给实例的无法识别的select器 我怎么解决这个问题 ?
我正在尝试构build一个parsing器/ objectMapper,它将为我从REST服务中使用的JSON构buildObjective C对象。 我从RestKit中得到了一些启发,让我的实体都拥有一个“解码列表”,它告诉映射器哪个JSON键与哪个对象相关联。 喜欢这个: //ObjectEntity implementation + (NSDictionary*) mapProperties { /* localPropertiy – JSONProperty */ return @{ @"name": @"name", @"category": @"category", @"possible_scopes": @"possibleScopes", @"possible_descriptions": @"possibleDescriptions", @"key": @"keys" }; } + (NSDictionary*) mapRelations { return [NSDictionary dictionary]; } 我这样做是因为我喜欢把这些可改变的值封装在它们引用的对象中。 尽可能less地使Mapper知道。 映射器做了这样的事情: + (NSArray*) parseData:(NSData*) jsonData intoObjectsOfType:(Class) objectClass { //Parser result from web service NSError *error […]
我收到这个exception,当我尝试JSON编码NSDate对象。我相信NSDate是不兼容的JSON编码。 但我必须编码的date。任何解决scheme? *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: 'Invalid type in JSON write (__NSDate)'
我有一个现成的企业(非AppStore)传统的iPad应用程序,我需要重构(这是另一个开发人员,我的前任在我目前的工作)写的。 此应用程序通过JSON从具有MSSQL数据库的服务器获取其数据。 数据库模式有大约30个表格,最广泛的是:客户端,城市,机构各有大约10000个logging,并且未来有望进一步增长。 在接收到JSON(每个表的一个JSON请求和响应对)后,它被映射到CoreData–这个过程还包括将相应的CoreData实体(Client,City,Agency等)相互粘合在一起在CoreData层上设置这些实体之间的关系。 本身的项目CoreData fetch-part(或者read-part)被大量优化 – 我猜,它使用了CoreData几乎所有可能的性能和内存调整,这就是为什么UI层的应用程序非常快速且响应速度很快认为它的工作是完全令人满意和充分的。 问题是CoreData层的准备过程,即服务器到客户端的同步过程:花费太多时间。 考虑30个networking请求产生30个JSON包(“包”我的意思是“一个表 – 一个JSON”),然后将其映射到30个CoreData实体,然后粘贴在一起(适当的CoreData关系设置在它们之间)。 当我第一次看到这个项目是如何完成的时候(太慢),首先想到的是: “首次执行完整的同步(应用程序的首次启动时间) – 在一个归档文件(类似于数据库转储)中执行整个数据库数据的获取,然后以某种方式将其作为整体导入到核心数据土地”。 但后来我意识到,即使这样的一个文件转储的传输是可能的,CoreData仍然会要求我执行相应的CoreData实体的粘合,以在它们之间设置适当的关系,这样很难想象我可以如果我依靠这个计划的话,就会在performance上受益。 另外,我的同事build议我考虑将SQLite作为Core Data的完整替代品,但不幸的是我没有使用它的经验,这就是为什么我完全盲目地预见到这样严重的devise决定的所有后果(即使有同步过程很慢,我的应用程序确实工作 ,尤其是它的UI性能现在非常好)。 我只能想象SQLite和Core Data不同,它不会促使我在客户端粘贴一些额外的关系,因为SQLite具有良好的旧外键系统,不是吗? 因此,这里是一些问题(受访者,当你回答时请不要混合这些问题 – 我对所有这些问题都有太多的疑惑): 有没有人有这样的经验,就像我上面所说的那样,采取“首次大量导入整个数据库”的方法? 我会非常感谢知道任何解决scheme,如果他们利用JSON < – > CoreData对或不。 核心数据是否具有一些全局的导入机制,可以批量创build相应的30表格模式(可能使用上述“30包JSON”之外的某些特定源),而不需要为30个实体build立对应关系? 如果2)是不可能的,是否有加快同步过程的可能性? 在这里我的意思是我的应用程序使用的当前JSON < – > CoreDatascheme的改进。 迁移到SQLite:我应该考虑这种迁移? 我会从中受益吗? 复制 – >传输 – >客户端准备过程的整个过程如何? CoreData和SQLite的其他替代品 – 它们可能是什么样子? 你可能对我所描述的情况有任何其他想法或异象? 更新1 虽然Mundi写的答案很好(一个大的JSON,使用SQLite的“No”),但是如果对于我所描述的问题有其他的了解,我仍然很感兴趣。 更新2 我曾尝试用我的俄语英语来描述我的情况,希望我的问题能够让所有读者都清楚的了解。 通过第二次更新,我将尝试提供一些更多的指导,使我的问题更加清晰。 请考虑两个二分法: […]
我试图使用在这里find的JSONKIt https://github.com/johnezang/JSONKitparsing通过一个JSON饲料,并把它放到客观的C对象。 我是iOS新手,不知道从哪里开始。 有没有什么好的教程使用这个库?
我想使用下面的代码将数据传递到POST JSON Web服务。 NSString *urlString = @"http://3.10.204.99:9090/service/outage/data/getShortFormData"; NSDictionary *inputData = [[NSDictionary alloc] initWithObjectsAndKeys: @"1020", @"outageId", @"Alex", @"customerName", nil]; NSError *error = nil; NSData *jsonInputData = [NSJSONSerialization dataWithJSONObject:inputData options:NSJSONWritingPrettyPrinted error:&error]; NSString *jsonInputString = [[NSString alloc] initWithData:jsonInputData encoding:NSUTF8StringEncoding]; [self checkWithServer:urlString jsonString:jsonInputString]; -(void)checkWithServer:(NSString *)urlname jsonString:(NSString *)jsonString{ NSURL *url1 = [NSURL URLWithString:urlname]; NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url1]; [request setHTTPMethod:@"POST"]; […]