php - 예제 - table json example




NSArray 변환-> JSON-> NSData-> PHP 서버-> JSON 표현 (2)

내가 이것을 다음과 같이 할 필요가 있음을 알게된다.

내 데이터를 만드는 방법 :

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];
NSString *jsonString = [[NSString alloc] initWithData:jsonData encoding:NSUTF8StringEncoding];

    // Start request
    NSURL *url = [NSURL URLWithString:@"http://www.mywebsite.com/index.php"];
    ASIFormDataRequest *request = [ASIFormDataRequest requestWithURL:url];
    [request setPostValue:jsonString forKey:@"songs"];
    [request setDelegate:self];
    [request startAsynchronous];

핵심은 정보를 NSData 로 변환 한 다음 원시 NSData 전송하는 것이 아니라 내 서버로 전송 한 JSON String으로 변환하는 것이 었습니다.

도와 주신 모든 분들께 감사드립니다!

NSDictionaries의 배열을 JSON 데이터로 변환하는 중입니다.

내 데이터 만들기 ...

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 setPostValue:jsonData forKey:@"songs"];
    [request setDelegate:self];
    request.tag = TAG_LOAD_SONGS;
    [request startAsynchronous];

이것은 NSData를 내 서버로 보내고 있지만 PHP에서 사용하는 방법은 무엇입니까? 내 서버에서 인쇄하면 실제로 그 숫자가 무작위로 늘어납니다. json_encode를 사용하여 시도했지만 그다지 의미가 없다고 생각합니다. 원시 데이터 ...

어떤 도움이 될거야!

편집 : 여기에 PHP의 응답은 ...

echo $_POST['songs'];

<5b0a2020 7b0a2020 20202274 69746c65 22203a20 224d7953 6f6e6722 2c0a2020 20202261 72746973 7422203a 20224d79 41727469 7374220a 20207d2c 0a20207b 0a202020 20227469 746c6522 203a2022 4d79536f 6e67222c 0a202020 20226172 74697374 22203a20 224d7941 72746973 74220a20 207d0a5d>

다음은 Xcode에서 NSLoging에 대한 응답입니다 ...

NSLog(@"Info: %@", info);

정보 : ({artist = MyArtist; title = MySong;}, {artist = MyArtist; title = MySong;})


이런 식으로 보낼 수는 없습니다. NSJSONSerialization은 iOS 용입니다. 그것은 기본적으로 plist입니다. PHP에서 디코드 할 방법이 필요하며 필자는 그것이 존재하는지 의심 스럽다. 대신 JSON 문자열을 보내야합니다. 나는 당신이 "제목 주위에 따옴표를 남겨 두는 것에 의해 당신이 의미하는 것이 확실하지 않다." 그들이 처음에 무엇을하고 있습니까? 원래 JSON 문자열을 here 확인할 수 있습니까?







asiformdatarequest