-4

我有一个应用程序,其中有这样的 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);
4

5 回答 5

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];
}

希望你能理解。并阅读一些文件。它会帮助你。

于 2013-08-29T07:10:58.180 回答
1

看起来您需要 JSON 解析。在这里,您需要的是 JSON 解析,而不是从 JSON 响应中分离数据。JSON 是数据的格式,其中数据以键值对格式设置。您可以使用"Key"获取任何对象的"Value " 。

你的前两行是正确的。

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"];

这将从您的回复中为您提供“串行”的价值。同样,您可以获得"success""message"的值。您可以使用此行检查它:

NSLog(@"pserial :: %@",pserial);
于 2013-08-29T07:05:10.017 回答
0

不要用“:”分隔只需使用 JSONValue 您的响应就像

 //     {"success":"true","message":"You have logged in","pserial":"1"} 

 //  with SBJsonParser parse your object like this

 NSDictionary *responseJson = [YOUR-OBJECT JSONValue];

注意:不要忘记添加 Json 头文件

于 2013-08-29T07:07:55.203 回答
0

最好使用任何 OpenSource Json Parser

这是一个堆栈帖子比较不同的 Json Parser for iOS

在此处输入图像描述

于 2013-08-29T07:18:57.897 回答
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"];
于 2013-08-29T07:05:00.770 回答