Send NSMutableArray as JSON using JSON-Framework

后端 未结 3 1626
无人共我
无人共我 2021-01-19 14:08

I\'m using JSON-Framework in my project successfully to decode JSON send from a server.

Now I need to do it the other way around and I\'m facing problems as the data

相关标签:
3条回答
  • 2021-01-19 14:11

    This is an example of sending dictionary and array to server.which worked for me 1000000% .

    SBJSON *jparser = [[SBJSON new] autorelease];
    
    
    NSString *ArrayjsonItems = [jparser stringWithObject:self.UrMergedArray];
    
    NSString *DicjsonItems = [jparser stringWithObject:self.UrMergedDic];
    
    
    
    
    NSLog(@"array Items :%@",self.UrMergedArray);
    
    NSLog(@"dic Items :%@",self.UrMergedDic);
    
    
    
    
    NSString *postString =[NSString stringWithFormat:@"Arrayitems=%@&Dicitems=%@",ArrayjsonItems,DicjsonItems];
    
    
    NSLog(@"it is going to post : %@ \n\n",postString);
    
    
    
    NSMutableURLRequest *request=[NSMutableURLRequest requestWithURL:snapURL];
    
    [request setHTTPMethod:@"POST"];
    
    [request setHTTPBody:[postString dataUsingEncoding:NSUTF8StringEncoding]];
    
    
    
    NSURLConnection *connection=[[NSURLConnection alloc]
                                 initWithRequest:request
                                 delegate:self];
    
    
    if (connection) {
    
        self.receivedData = [[NSMutableData alloc]init];
    
    }
    
    0 讨论(0)
  • 2021-01-19 14:27

    Allow me to suggest a somewhat nicer solution:

    In your MenuItems class, implement the -proxyForJson method and you should then be able to call the -JSONRepresentation method directly on the menuItems array.

    @interface MenuItems(SBJson)
    -(id)proxyForJson {
        return [NSDictionary dictionaryWithObjectsAndKeys:
                self.id,@"id",
                [self.modified description],@"modified",
                nil];
    }
    @end
    

    Hope this helps!

    0 讨论(0)
  • 2021-01-19 14:31

    I finally solved it, but I'm not sure if it's the best/most elegant way to do it.

    NSMutableArray* items = [[NSMutableArray alloc] init];
    for (MenuItems* item in menuItems) {
        [items addObject:[NSArray arrayWithObjects:item.id,[item.modified description],nil]];
    }
    NSString *post = [NSString stringWithFormat:@"currentData=%@",
                      [items JSONRepresentation]];
    

    Explanation:
    I first thought that the problem was the NSMutableArray, but then realized that it was the contents of it. So I just get the information I need out of it and saved it as NSArray which JSON-Framework does accept :-)

    0 讨论(0)
提交回复
热议问题