0

JSONを取得するために、私はこの回答を使用していましたSBJsonWriter Nested NSDictionary

今、私は{"key1":"bla1","key2":{"a":"a1","b":"b1","c":"c1","d":"d1"},"key3":"bla3"}私が呼んだ刺し傷を持っています、theString そして私はそれをURLに追加してhttp://mysyte.net:8888/JSON? このようなものを受け取る必要がありますhttp://lcwebtest.sytes.net:8888/JSON?{"key1":"bla1","key2":{"a":"a1","b":"b1","c":"c1","d":"d1"},"key3":"bla3"}

これが私がすることです: NSString *urlString = [NSString stringWithFormat:@"http://mysyte.net:8888/JSON?%@",theString];

NSLogはhttp://mysyte.net:8888/JSON?{"key2":{"d":"d1","b":"b1","c":"c1","a":"a1"},"key1":"bla1","key3":"bla3"}

次に、NSURL * url1 = [NSURL URLWithString:urlString];によってURLを作成します。

しかしNSLog(@"%@",url1);、私に与えます{null}

NSURLは「{」または「}」を読みたくないと思い、URLが不正であると考えています。

GETリクエストを行うためのURLを受け取るにはどうすればよいですか?

4

1 に答える 1

0

NSURLは「{」または「}」を読みたくないと思い、URLが不正であると考えています。

そうです、URLに特殊文字を入れることは許可されていません。次のようにJSON文字列をエスケープします。

CFStringRef escaped = CFURLCreateStringByAddingPercentEscapes(
    NULL,
    (CFStringRef)theString, // (__bridge CFStringRef)theString if you use ARC
    CFSTR(""),
    CFSTR("?&=%,:+-"),
    kCFStringEncodingUTF8
);
NSString *urlString = [NSString stringWithFormat:@"http://mysyte.net:8888/JSON?%@", (NSString *)escaped];
CFRelease(escaped);
于 2013-02-05T07:10:27.037 に答える