Tag: json

基于NSObject的类的iOS JSON序列化

我想要JSON序列化我自己的自定义类。 我在Objective-C / iOS5中工作。 我想要做的事情如下: Person* person = [self getPerson ]; // Any custom object, NOT based on NSDictionary NSString* jsonRepresentation = [JsonWriter stringWithObject:person ]; Person* clone = [JsonReader objectFromJson: jsonRepresentation withClass:[Person Class]]; 看来,NSJSONSerialization(和其他一些库)需要“人”类基于NSDictionary等我想要的东西,将序列化任何自定义对象,我关心定义(在合理的范围内)。 让我们设想Person.h如下所示: #import <Foundation/Foundation.h> @interface Person : NSObject @property NSString* firstname; @property NSString* surname; @end 我想为实例生成的JSON看起来类似于以下内容: {"firstname":"Jenson","surname":"Button"} 我的应用程序使用ARC。 我需要使用对象序列化和反序列化的东西。 非常感谢。

recursion遍历未知结构的NSDictionary

有没有人做过一个未知结构的NSDictionaryrecursion遍历? 我想采取任何NSDictionary,并按层次顺序处理每个级别。 1)这些数据来自validation的JSON。 可以肯定地说,从SBJSON(JSON Framework)这样的框架创build的NSDictionary只会导致嵌套的字典,数组和任意叶子的组合? 2)如何使用适用于数组和字典的快速枚举来进行generics遍历? 用下面的代码,一旦我得到一个数组中的字典,它停止遍历。 但是,如果我在数组条件中继续recursion(以检查数组中的字典),它会在下一次id value = [dict valueForKey:key];迭代中使用bar id value = [dict valueForKey:key]; 与-[__NSCFDictionary length]: unrecognized selector sent to instance SIGABRT。 我不知道为什么这会是一个问题,因为我已经通过顶级字典(其中发现了子级字典数组)的那一行。 -(void)processParsedObject:(id)dict counter:(int)i parent:(NSString *)parent { for (id key in dict) { id value = [dict valueForKey:key]; NSLog(@"%i : %@ : %@ -> %@", i, [value class], parent, key); if […]

Alamofire:发送JSON作为请求参数

我有一个令人难以置信的长arrays和string,我想通过Alamofire发送,但我不知道如何将原始JSON作为参数。 JSON看起来有点像 { "skus":["8865594-CS,4387296-CS,1175540-CS…."], "listType": "H" } 而不是让行为像一个Swift数组,然后序列化,有没有办法,我可以通过这个JSON作为参数在Alamofire? 谢谢! 编辑: 我能够在文本编辑器中获得一些魔法,以得到格式化为Swift数组的样式(如var skus = ["abc", …] ),所以我将skus和listType变成了字典,按埃里克的build议。 除了我得到一个状态代码:414,这意味着这个URL太长了。

在Swift中用Alamofire处理JSON响应

对不起,我的英语不好 :) 我有一个问题来parsing在iOS应用程序的Swift的Alamofire的JSON响应。 我写了一个函数来返回一串JSON响应。 请求和响应处理我用Alamofire和JSON处理我用SwiftyJSON处理。 在开始我声明一个叫做jsonString的var值testing 。 然后我做一个REST服务的请求,并通过点击一个button来得到一个JSON响应。 这个回应我想用函数ping(url:String)返回 。 最后,我打印返回的答案作为一个testing。 但是在第一次点击button时,来自ping的返回值是test,而不是响应的JSONstring。 在第二次点击button我得到正确的返回值。 为什么我有这个问题。 Alamofire是否请求asynchronous操作? 我想等待回应。 我怎样才能解决问题,以获得正确的价值,第一次点击,而不是testing值? 这是我的代码: var jsonString:String = "test" func ping(url:String) -> String { Alamofire.request(.GET, url) .response { (request, response, data, error) -> Void in let json = JSONValue(data as? NSData) self.jsonString = json.rawJSONString } return self.jsonString } @IBAction func checkOnlineStatus(sender: UIButton) […]

如何在iOS上将图像作为JSON上载到服务器

如何将图像上传到iPhone上的图库作为JSON? 我尝试了以下内容: [Loading startLoading:YES]; NSString *urlString = [NSString stringWithFormat:@"http://railsboxtech.com/singing/jsn_song/register_response.php?accesstoken=%@",Access_Token]; //username, password, name, email, country NSString *parameter = [NSString stringWithFormat:@"username=%@&password=%@&fname=%@&email=%@&lname=%@&btnImage4=%@",userField.text,passField.text,fnameField.text,emailField.text,lnameField.text,btnImage4]; NSConnection *conn = [[NSConnection alloc] initWithDelegate:self]; [conn sendRequest:urlString withParaMeter:parameter withMethod:@"POST" withTag:1]; [conn startAsynchronousRequest];

带有JSON响应的NSData到NSString

NSData * jsonData是包含JSON数据的http响应。 NSString* jsonString = [[NSString alloc] initWithData:jsonData encoding:NSUTF8StringEncoding]; NSLog(@"jsonString: %@", jsonString); 我得到了结果: { "result": "\u8aaa" } 什么是正确的方式来编码数据到正确的string,而不是unicodestring像“\ uxxxx”?

JSONparsing在iOS中使用NSJSONSerialization

我parsing我的代码中的JSON 。 但是在检索parsing的JSON数据时,我遇到了一些意想不到的问题。 所以让我解释一下我的问题。 我必须使用xcodeparsing下面的JSON数据。 在浏览器中input相同的URL时,这就是要parsing的数据: { "RESPONSE":[ {"id":"20", "username":"john", "email":"abc@gmail.com", "phone":"1234567890", "location":"31.000,71.000"}], "STATUS":"OK", "MESSAGE":"Here will be message" } 我的代码达到这个JSON数据如下: NSData *data = [NSData dataWithContentsOfURL:finalurl]; NSError *error; NSDictionary *json = [NSJSONSerialization JSONObjectWithData:data options:kNilOptions error:&error]; 如果我使用NSLog打印对象json ,即NSLog(@"json: %@", [json description]); 看起来像: json: { MESSAGE = "Here will be message"; RESPONSE =( { email = "abc@gmail.com"; id […]

iOS JSON NSString分析

我有一个JSONstring作为iOS中的NSString对象。 我想parsing这个,并拉出JSONstring中给定的参数。 有没有一种有效的方法来parsing这个或是唯一的方法来search子string等?

转换NSArray – > JSON – > NSData – > PHP服务器 – > JSON表示

我正在将NSDictionaries数组转换为JSON数据与以下… 创build我的数据… NSMutableArray *arrayOfDicts = [[NSMutableArray alloc] init]; for (int i = 0; i < 2; i++) { NSDictionary *dict = [NSDictionary dictionaryWithObjectsAndKeys: @"MySong", @"title", @"MyArtist", @"artist", nil]; [arrayOfDicts addObject:dict]; } NSArray *info = [NSArray arrayWithArray:arrayOfDicts]; NSData* jsonData = [NSJSONSerialization dataWithJSONObject:info options:NSJSONWritingPrettyPrinted error:&error]; 然后发送像这样… NSURL *url = [NSURL URLWithString:@"http://www.mywebsite.com/index.php"]; ASIFormDataRequest *request = [ASIFormDataRequest requestWithURL:url]; [request […]

JSONparsing在iOS 7中

我正在创build一个作为现有网站的应用程序。 他们目前拥有以下格式的JSON: [ { "id": "value", "array": "[{\"id\" : \"value\"} , {\"id\" : \"value\"}]" }, { "id": "value", "array": "[{\"id\" : \"value\"},{\"id\" : \"value\"}]" } ] 他们使用Javascript转义\字符后parsing。 我的问题是当我使用下面的命令在iOS中parsing它: NSArray *result = [NSJSONSerialization JSONObjectWithData:jsonData options:kNilOptions error:&localError]; 并做到这一点: NSArray *Array = [result valueForKey:@"array"]; 我得到了NSMutableString对象而不是一个Array 。 该网站已经在生产,所以我不能让他们改变他们现有的结构,以返回一个适当的JSON对象。 对他们来说这将是很多工作。 所以,直到他们改变底层的结构,有什么办法可以使它在iOS工作,就像他们在他们的website上使用javascript一样? 任何帮助/build议对我都很有帮助。