我正在尝试'sql从TableWeb By -JSON代码中选择'信息 -
在xCode中,当我“NSLog”时,它的信息如下: 我试着摆脱那些符号()[]。 我怎么才能收到变量值? 谢谢大家
2012-06-13 12:24:54.572 Gym31Vads[5628:16103] (
204
)
2012-06-13 12:33:33.911 Gym31Vads[5628:16103] (
204
)
2012-06-13 12:35:12.830 Gym31Vads[5628:16103] (
204
)
这是我在网上的JASON代码:
$var_email=$_POST['mail'];
$query = mysql_query(" SELECT `pk` FROM `adidas` WHERE `mail` = ('{$var_email}') LIMIT 1);
$users = array();
while ($row = mysql_fetch_array($query))
{
$users = array($row['pk']);
}
echo json_encode($users);
这是ObjectiveC代码:
NSMutableURLRequest *request = [[NSMutableURLRequest alloc]init];
NSString * urlString = [NSString stringWithFormat:@"myURLselectPK.php"];
[request setURL:[NSURL URLWithString:urlString]];
[request setHTTPMethod:@"POST"];
NSString*paramDataString=[NSString stringWithFormat:@"mail=%@",txt_mail.text];
NSData*paramData=[paramDataString dataUsingEncoding:NSUTF8StringEncoding];
[request setHTTPBody:paramData];
NSURLResponse *response;
NSError *error;
NSData *aData = [NSURLConnection sendSynchronousRequest:request returningResponse:&response error:&error];
NSURL*url=[NSURL URLWithString:@"myURLselectPK.php"];
NSData*data=[NSData dataWithContentsOfURL:url];
NSError*err=nil;
NSMutableDictionary*jsondict=[NSJSONSerialization JSONObjectWithData:aData options:kNilOptions error:&err];
NSMutableArray*json=(NSMutableArray*)[NSJSONSerialization JSONObjectWithData:data options:kNilOptions error:&err];
NSLog(@"%@",jsondict);
NSError *error2;
NSData *jsonData = [NSJSONSerialization dataWithJSONObject:jsondict
options:NSJSONWritingPrettyPrinted
error:&error2];
NSString*Str=[[NSString alloc] initWithData:jsonData encoding:NSUTF8StringEncoding];
NSString*str_screen=[NSString stringWithFormat:@"%@",Str];
lbl_pk_check.text=[NSString stringWithFormat:@"%@",Str];
答案 0 :(得分:0)
NSLog是一种诊断工具。您没有任何关于如何使用%@
说明符格式化对象的选项。如果您想要其他格式,则需要自己构建字符串。例如,要记录没有括号的数组内容:
NSMutableString* logString = [[NSMutableString alloc] init];
for (id anObject in myArray)
{
if ([logString length] > 0)
{
[logString appendString: @", "];
}
[logString appendString: [anObject description]];
}
NSLog(%@", lofString);
你无法对这些事做任何事情:
2012-06-13 12:35:12.830 Gym31Vads[5628:16103]
完全没有。
答案 1 :(得分:0)
NSLog
在变量周围显示()表示它是您正在打印的数组。如果只想显示数组内部的值,则必须首先获取它,无论是使用字典还是按键,如果您正在打印数组。
无论如何,你似乎过分关注你在NSLog
中展示的内容。什么表明您的变量没有真正的价值,只是在日志中显示的字符串表示。实际上,您的变量不会包含任何()或[]符号,但只包含在数组容器中的符号。
在旁注中,您正在打印NSMutableDictionary *jsondict
变量,但实际上您内部有一个数组。你正在使用的JSON反序列化方法返回了一个(很可能)不可变数组,你应该将它分配给NSArray *
变量。如果你想要一个可变对象,你必须调用[NSMutableArray arrayWithArray:]
方法,你不能简单地将它们转换为另一个。