JSON으로 NSDictionary를 NSArray로 인코딩하여 PHP 웹 서비스에 업로드하려고합니다. 나는 웹 서비스를 요청하기 전에JSON에서 iOS에서 PHP로 배열의 배열을 인코딩하는 방법
NSString * jsonRequest = [NSString stringWithFormat: @"{\"request\":\"syncBookmark\",\"bookmark_array\":\"%@\",\"user_id\":\"%@\"}", jsonString, user_id, nil];
NSData * requestData = [NSData dataWithBytes:[jsonRequest UTF8String] length:[jsonRequest length]];
에서, JSON 인코딩 된 문자열이 같다 :
NSError * error;
NSData * jsonData = [NSJSONSerialization dataWithJSONObject:my_array_1 options:0 error:&error];
NSString * jsonString = [[NSString alloc] initWithData:jsonData encoding:NSUTF8StringEncoding];
jsonString = [jsonString stringByReplacingOccurrencesOfString:@"\"" withString:@"\\\""];
가 그럼 난하여 다른 배열로 JSON 문자열을 삽입합니다
이
내가 JSON 인코딩 방법 내있는 NSArray입니다 :{"request":"syncBookmark","bookmark_array":"[{\"PostId\":\"4\",\"last_edit_date\":\"2014-03-03 01:05:37\",\"BookmarkId\":\"1\",\"last_sync_date\":\"\",\"is_active\":\"1\"}]","user_id":"7"}
PHP에서 'user_id'를 '7'로 올바르게 반올림 할 수 있지만 ' 그는 배열 - is_array ($ bookmark_array) PHP에서 그것은 단지 거짓을 반환합니다. 배열을 배열에 잘못 두는 방법입니까?
PHP 코드 –
을 보내주십시오. "JSON 포함/중첩"(실제로 JSON으로 인코딩 된 두 번 인코딩)을 사용하려는 경우에만 추가 조작이 필요합니다. 이것은 비정상적인 일이 될 수 있으므로 그렇게하지 않아야 할 가능성이 큽니다. Rob이 제안한 것처럼 JSON 인코딩을 통해 데이터를 두 번 실행하면보다 효과적이고 안정적으로 데이터를 처리 할 수 있습니다. 일반적으로 배열을 사전에 넣거나 사전에 JSON 인코딩을하여 배열을 사전 (또는 다른 배열)에 배치합니다. JSON 인코더는 중첩 배열/사전을 처리하는 방법을 알고 있습니다. –
(JSON은 매우 이해하기 쉽고 사용하기 쉽다. 일단 이해했다면 json.org로 가서 구문을 배우는 데 5-10 분을 소비한다.그런 다음 JSON "객체"가 iOS "NSDictionary"에 완벽하게 매핑되고 JSON "배열"이 iOS NSArray에 완벽하게 매핑된다는 것을 이해하십시오. 그래서 좋은 JSON 인코더/디코더를 사용하는 한 두 양식간에 앞뒤로 변환하는 것은 쉽습니다. 다른 조작은 99 % 필요하지 않습니다.) –