0

Я хочу формат JSON в моем app.my JSON это:как отправить формат JSON с помощью метода POST

{ 
    user: { 
     id: 2 
    }, 
    items: [ 
     { 
     id: 2, 
     num: 3 
     } 
    ] 
} 

Я мог бы сделать формат JSON с этим кодом:

NSMutableDictionary *json = [[NSMutableDictionary alloc]init]; 

    NSMutableDictionary *users = [[NSMutableDictionary alloc]init]; 
    [users setObject:@"2" forKey:@"id"]; 

    NSMutableDictionary *item = [[NSMutableDictionary alloc]init]; 
    [item setObject:@"22" forKey:@"id"]; 
    [item setObject:@"33" forKey:@"num"]; 

    NSMutableArray *itemArray = [[NSMutableArray alloc]initWithObjects:item, nil]; 

    [json setObject:users forKey:@"user"]; 
    [json setObject:itemArray forKey:@"items"]; 

    NSLog(@"%@",json); 

    NSError *error = nil; 
    NSData *jsonData = [NSJSONSerialization dataWithJSONObject:json 
                 options:0 
                 error:&error]; 

прямо сейчас Я хочу знать, что это правда? если это правда, пожалуйста, назовите меня, как отправить это JSON на адрес с POST?

этот код для отправки JSON:

NSURL *url = [NSURL URLWithString: @"http://192.168.1.193/deliapi/order/new?token=absc"]; 

    NSString *postLength = [NSString stringWithFormat:@"%d",[jsonData length]]; 
    NSMutableURLRequest *request = [[NSMutableURLRequest alloc] init]; 

    [request setURL:url]; 

    [request setHTTPMethod:@"POST"]; 
    [request setValue:@"application/x-www-form-urlencoded" forHTTPHeaderField:@"Content-Type"]; 
    [request setValue:postLength forHTTPHeaderField:@"Content-Length"]; 
    [request setHTTPBody:jsonData]; 
    NSURLConnection *conn = [[NSURLConnection alloc]initWithRequest:request delegate:self]; 

    [conn start]; 


    if(conn) 
    { 
     NSLog(@"Connection Successful"); 
    } 
    else 
    { 
     NSLog(@"Connection could not be made"); 
    } 
+0

В вашем последнем вопросе вы сказали, что * «Я знаю, как отправлять данные с помощью метода POST» * :) –

+0

@MartinR вы правы, но это не работает, и теперь я так запутался. Я хочу знать, как преобразовать NSMutableDictionary в JSON формат? – user3599133

+0

Вы уже это сделали. 'jsonData' содержит данные в формате JSON. - Если он не работает, вам нужно добавить гораздо больше информации. Как вы отправляете данные, какие ошибки вы получаете, ... –

ответ

0

Мой друг ваш код правильно !!! Вы должны определить приложения/JSON для HeaderField:

Написать этот код:

[request setValue:@"application/json" forHTTPHeaderField:@"Content-Type"]; 
[request setValue:@"application/json" forHTTPHeaderField:@"Accept"]; 

Я надеюсь помочь вам !!!

Смежные вопросы