0

我有以下 JSON 文件要解析:

[
{
    "name": "kkkk",
    "empid": "55628",
    "address": "mumbai",
    "mobile": "9528558"
},
{
    "name": "xtreme",
    "empid": "20",
    "address": "stripes",
    "mobile": "9689597"
},
{
    "name": "xtreme",
    "empid": "20",
    "address": "stripes",
    "mobile": "9689999597"
},
{
    "name": "xtreme",
    "empid": "20",
    "address": "stripes",
    "mobile": "9689999597"
},
{
    "name": "xtreme",
    "empid": "20",
    "address": "stripes",
    "mobile": "9689597"
},
{
    "name": "xtreme",
    "empid": "20",
    "address": "stripes",
    "mobile": "9689999597"
},
{
    "name": "xtreme",
    "empid": "20",
    "address": "stripes",
    "mobile": "9689999597"
},
{
    "name": "xtreme",
    "empid": "20",
    "address": "stripes",
    "mobile": "9689999597"
},
{
    "name": "xtreme",
    "empid": "20",
    "address": "stripes",
    "mobile": "96897"
},
{
    "name": "vx",
    "empid": "96",
    "address": "addre",
    "mobile": "9689999596"
},
{
    "name": "vxx",
    "empid": "96",
    "address": "addre",
    "mobile": "968999"
},
{
    "name": "vx",
    "empid": "96",
    "address": "addre",
    "mobile": "9699596"
},
{
    "name": "vxertdrt",
    "empid": "96",
    "address": "addre",
    "mobile": "968996"
},
{
    "name": "vx",
    "empid": "96",
    "address": "addre",
    "mobile": "999596"
}

]

我有以下解析代码:

 SBJSON *parser=[[SBJSON alloc]init];
array=[parser objectWithString:firstParseData];
NSString *secondParseData=[array objectAtIndex:0];
NSLog(@"name=%@",secondParseData);

通过这段代码,我得到以下字符串格式的输出:

 name={
address = mumbai;
empid = 55628;
mobile = 9525878558;
name = kkkk;

}

但我想要员工对象形式的输出。我怎样才能从 json 制作员工对象?

4

2 回答 2

1

尝试这个 :

NSMutableArray *final_array =[[NSMutableArray alloc]init];
for (NSDictionary *dict in array) {
    Employee *obj =[[Employee alloc]init];
    for (id key in [dict allKeys]) {
        [obj setValue:[dict objectForKey:key] forKey:key];
    }
    [final_array addObject:obj];
}
于 2012-06-04T04:32:17.023 回答
1

您必须有一个Employee带有构造函数的类。然后你可以做这样的事情。您不需要创建SBJson解析器对象。你可以直接用它就可以了NSString,那就是美化了SBJson

NSString * data = @"[
{
    "name": "kkkk",
    "empid": "55628",
    "address": "mumbai",
    "mobile": "9528558"
},
...
{
    "name": "vx",
    "empid": "96",
    "address": "addre",
    "mobile": "999596"
}
]";

// Get an array with all the employees inside
NSArray *myArray = [data JSONValue];

// Pick out the first employee
NSDictionary *firstEmployee = myArray[0];

// Create an object for him
Employee *firstEmployeeObject = [[Employee alloc] initWithAddress:[firstEmployee objectForKey:@"address"] andEmpID:[firstEmployee objectForKey:@"empid"] andMobile:[firstEmployee objectForKey:@"mobile"] andName:[firstEmployee objectForKey:@"name"]];

release如果您不使用 ARC ,请不要忘记您的对象。

于 2012-06-04T04:28:44.730 回答