我有一个应用程序,我有这样的json响应。
{"success":"true","message":"You have logged in","pserial":"1"}
,我与":"
分开。
我收到的数据如pSerial:"1"}
,但我只想要1
值。
NSURL *url = [NSURL URLWithString:strUrl];
NSData *respData = [NSData dataWithContentsOfURL:url];
NSString *strResp = [[NSString alloc]initWithData:respData encoding:NSUTF8StringEncoding];
NSString *approvalString = [[strResp componentsSeparatedByString:@":"] objectAtIndex:3];
NSLog(@"pSerial:%@",approvalString);
答案 0 :(得分:3)
例如:
SBJsonParser *jsonPar = [[SBJsonParser alloc] init];
NSError *error = nil;
NSArray *jsonObj = [jsonPar objectWithString:jsonString error:&error];
id jsonObj = [jsonPar objectWithString:jsonString error:&error];
if ([jsonObj isKindOfClass:[NSDictionary class]])
// treat as a dictionary, or reassign to a dictionary ivar
else if ([jsonObj isKindOfClass:[NSArray class]])
// treat as an array or reassign to an array ivar.
然后得到值:
NSMutableArrary *userMutArr = [NSMutableArray array];
for (NSDictionary *dict in jsonObj)
{
User *userObj = [[[User alloc] init] autorelease];
[userObj setFirstName:[dict objectForKey:@"firstName"]];
[userObj setLastName:[dict objectForKey:@"lastName"]];
[userObj setAge:[[dict objectForKey:@"age"] intValue]];
[userObj setAddress:[dict objectForKey:@"address"]];
[userObj setPhoneNumbers:[dict objectForKey:@"phoneNumber"]];
[userMutArr addObject:userObj];
}
希望你能理解。并阅读一些文件。它会帮助你。
答案 1 :(得分:1)
看起来你需要JSON解析。在这里,你想要的是JSON解析,而不是从JSON Response中分离数据。 JSON是数据格式,其中数据以键值对格式化。您可以使用 “密钥” 获取任何对象的 “值” 。
前两行是正确的。
NSURL *url = [NSURL URLWithString:strUrl];
NSData *respData = [NSData dataWithContentsOfURL:url];
现在,您可以像这样解析JSON响应:
NSError* error;
NSDictionary* json = [NSJSONSerialization JSONObjectWithData:respData options:kNilOptions error:&error];
NSString *pSerial = [json objectForKey:@"pserial"];
这会从您的回复中为您提供“pserial”的值。同样,您可以获取“成功”和“消息”的值。您可以使用以下行检查它:
NSLog(@"pserial :: %@",pserial);
答案 2 :(得分:0)
您需要解析JSON响应字符串,您可以使用任何JSON解析器,如:
https://github.com/stig/json-framework/
在你的代码中执行:
NSString *strResp = [[NSString alloc]initWithData:respData encoding:NSUTF8StringEncoding];
NSDictionary *ResponseDictionary = [strResp JSONValue];
NSString * pSerial = (NSString*)[ResponseDictionary objectForKey:@"pserial"];
答案 3 :(得分:0)
不要分开“:”只需使用JSONValue,你的回答就像
// {"success":"true","message":"You have logged in","pserial":"1"}
// with SBJsonParser parse your object like this
NSDictionary *responseJson = [YOUR-OBJECT JSONValue];
注意:别忘了添加Json头文件
答案 4 :(得分:0)
使用任何OpenSource Json Parser
更好这是一个堆栈帖子比较不同的Json Parser for iOS