creating JSON format in Objective C
10,900
Solution 1
Required Data , You can get this way . Just convert that stud dict in JSon or any other format you want. Remove that array , You don't need it , As you mentioned it in the required format.
NSMutableDictionary *gradedetails = [[NSMutableDictionary alloc] init];
[gradedetails setObject:@"pass" forKey:@"studentresult"];
[gradedetails setObject:@"provided" forKey:@"marksheet"];
NSMutableDictionary *sdetails = [[NSMutableDictionary alloc] init];
[sdetails setObject:@"01" forKey:@"ID"];
[sdetails setObject:@"Name" forKey:@"Student1"];
[sdetails setObject:gradedetails forKey:@"Grade1"];
NSMutableDictionary *results = [[NSMutableDictionary alloc] init];
[results setObject:sdetails forKey:@"results"];
NSMutableDictionary *stud = [[NSMutableDictionary alloc] init];
[stud setObject:results forKey:@"Students"];
NSLog(@"Required Format Data is %@",stud);
Solution 2
Depends on your code:
NSMutableDictionary *gradedetails = [[NSMutableDictionary alloc] init];
[gradedetails setObject:@"pass" forKey:@"studentresult"];
[gradedetails setObject:@"provided" forKey:@"marksheet"];
NSMutableDictionary *results = [[NSMutableDictionary alloc] init];
[results setObject:gradedetails forKey:@"Grade1"];
[results setObject:@"01" forKey:@"ID"];
[results setObject:@"Name" forKey:@"Student1"];
NSMutableDictionary *stud = [[NSMutableDictionary alloc] init];
[stud setObject:results forKey:@"Students"];
Solution 3
NSDictionary *gradedetails = @{@"studentresult" : @"pass", @"marksheet" : @"provided"};
NSDictionary *grade = @{ @"Grade1" : gradedetails}
NSDictionary *sdetails = @{@"ID" : @"01", @"Student1" : @"Name"};
NSArray *resultsArray = @[grade, sdetails];
NSDictionary *results= @{@"results" : resultsArray};
NSDictionary *stud = @{@"Students" : results};
NSData *jsondata = [NSJSONSerialization dataWithJSONObject:stud options:NSJSONWritingPrettyPrinted error:&error];
I wonder why few developper use this notation
Solution 4
check this code-
NSMutableDictionary *students=[NSJSONSerialization JSONObjectWithData:webData options:0 error:nil];
for (NSDictionary *dictionofstudents in students)
{
NSMutableDictionary *results=[dictionofstudents objectForKey:@"results"];
for (NSDictionary *dictionofresults in results)
{
NSMutableDictionary *grade1=[dictionofresults objectForKey:@"Grade1"];
for (NSDictionary *dictionofgrade1 in grade1)
{
NSString *studentresult=[dictionofgrade1 objectForKey:@"studentresult"];
NSString *marksheet=[dictionofgrade1 objectForKey:@"marksheet"];
[arrayofstudentresult addObject:studentresult];
[arrayofmarksheet addObject:marksheet];
}
NSString *ID=[dictionofresults objectForKey:@"ID"];
NSString *name=[dictionofresults objectForKey:@"Name"];
[arrayofID addObject:ID];
[arrayofname addObject:name];
}
}
Author by
user2071152
Updated on June 04, 2022Comments
-
user2071152 almost 2 years
For an application i want to create a JSON in format as mentioned below,
"Students" : { "results": { "Grade1": { "studentresult": "pass", "marksheet": "provided" }, "ID": 01, "Name": "Student1", } }
I am using the following code to create the same,
NSMutableDictionary *gradedetails = [[NSMutableDictionary alloc] init]; [gradedetails setObject:@"pass" forKey:@"studentresult"]; [gradedetails setObject:@"provided" forKey:@"marksheet"]; NSMutableDictionary *sdetails = [[NSMutableDictionary alloc] init]; [sdetails setObject:@"01" forKey:@"ID"]; [sdetails setObject:@"Name" forKey:@"Student1"]; NSMutableDictionary *grade = [[NSMutableDictionary alloc] init]; [grade setObject:gradedetails forKey:@"Grade1"]; NSMutableArray *rarray = [[NSMutableArray alloc] init]; [rarray addObject:grade]; [rarray addObject:sdetails]; NSMutableDictionary *results = [[NSMutableDictionary alloc] init]; [results setObject:rarray forKey:@"results"]; NSMutableDictionary *stud = [[NSMutableDictionary alloc] init]; [stud setObject:rdic forKey:@"Students"]; NSData *jsondata = [NSJSONSerialization dataWithJSONObject:stud options:NSJSONWritingPrettyPrinted error:&error];
I am getting in the following format,
"Students" : { "results" : [ { "Grade1" : { "studentresult" : "pass", "marksheet" : "provided" } }, { "ID" : "01", "Name" : "Student1" } ]
} }
could someone please help me in creating the format.
Thanks.