-->

解析JSON字符串到的NSMutableArray(Parsing JSON string to a

2019-10-29 16:59发布

这是我的字符串:

[{"id":"1","nome":"Adriatik"},{"id":"2","nome":"Ard"},{"id":"3","nome":"Albana"},{"id":"4","nome":"Adriana"}]

我想解析JSON字符串转换成所有的“名称” NSMutableArray

对不起我的英语不好!

Answer 1:

每当我不得不处理一些JSON代码,我喜欢做的第一件事就是创建一个基于JSON文本的类。 因此,例如,如果你的JSON是代表美国的一个州,创建一个“国家”级。

还有,你可以使用这个很酷的小产品。 这就是所谓的客观化和成本约$ 15。 毫无疑问,人们可以对可能做同样的事情其他免费的东西建议。

对于实际的JSON解析,我用SBJson 。 有相当多的JSON解析框架存在于Objective-C的所以肯定有一个环顾四周,看看有什么需要你的想象。

接下来,SBJson,做实际的解析:

-(NSDictionary *)parseJsonFromUrl
{
    NSAssert(mUrl, @"Must set a url before invoking %@", __PRETTY_FUNCTION__);

    // Create new SBJSON parser object
    SBJsonParser *parser = [[SBJsonParser alloc] init];

    // Prepare URL request to download JSON
    NSURLRequest *request = [NSURLRequest requestWithURL:mUrl];

    // Perform request and get JSON back as a NSData object
    NSData *response = [NSURLConnection sendSynchronousRequest:request returningResponse:nil error:nil];

    // Get JSON as a NSString from NSData response
    NSString *json_string = [[NSString alloc] initWithData:response encoding:NSUTF8StringEncoding];

    // parse the JSON response into an object
    // Here we're using NSArray since we're parsing an array of JSON status objects
    return [parser objectWithString:json_string error:nil];
}

一个返回NSDictionary 。 你知道要看看通过字典来设置你的模型类的值。 以下是如何做到这一点,而在同一时间装载值到NSMutableArray

-(void)downloadJsonData
{    
    NSDictionary *statesDict = [self parseJsonFromUrl];

    NSMutableArray *statesArray = [NSMutableArray arrayWithCapacity:[statesDict count]];

    for (NSDictionary *stateDict in stateDict)
    {
        State *aState = [[[State alloc] init] autorelease];
        aState.stateId = [stateDict valueForKey:@"id"];
        aState.name = [stateDict valueForKey:@"name"];

        [statesArray addObject:aState];
    }
}

请注意,我用的属性名称stateId没有id ,以免与Objective-C的对象指针类型冲突。



Answer 2:

使用SBJson类和调用-JSONValue方法

NSString *responseString = [[NSString alloc] initWithData:responseData encoding:NSUTF8StringEncoding];
   // NSLog(@" Response String %@", responseString);
    //converted response json string to a simple NSdictionary


    NSMutableArray *results = [responseString JSONValue];


文章来源: Parsing JSON string to a NSMutableArray