Alessandro
Alessandro

Reputation: 4110

Insert more keys in JSON iPhone

how can I add more than one key to a json file?

NSArray *keys = [NSArray arrayWithArray:allkeys];
NSArray *objects = [NSArray arrayWithArray:allobjects];

NSDictionary *jsonDictionary = [NSDictionary dictionaryWithObjects:objects forKeys:keys];

As you can see above the key fore jsonDictionary is keys, but I want a key with more keys inside it. I tried "forKeys: keys, keys2" (keys2 another array, but does not work. Now this is the result:

{"text2":"Untitled {{400, 100}, {200, 100}} <UICFFont: 0x2c3960> font-family: \"Helvetica\"; font-weight: normal; font-style: normal; font-size: 12px","text3":"Untitled {{400, 100}, {200, 100}} <UICFFont: 0x2c3960> font-family: \"Helvetica\"; font-weight: normal; font-style: normal; font-size: 12px","text1":"Untitled {{400, 100}, {200, 100}} <UICFFont: 0x2c3960> font-family: \"Helvetica\"; font-weight: normal; font-style: normal; font-size:     12px"}

The array keys contains Text1, text2... and the array objects contains Untitled, size... but I want a key "text1" with inside "text writing", "size"... not all together.

May be something like this:

{  
"menu": {  
    "header": "xProgress SVG Viewer",  
    "items": [  
        {  
            "id": "Open"  
        },  

Thanks in advance for the help

Upvotes: 0

Views: 80

Answers (1)

Johannes Lumpe
Johannes Lumpe

Reputation: 1762

You will have to create a hierarchy of nested NSDictionaries to achieve what you want to do.

Something like this:

// the following objecst are just dummies, fill this with your own objects
NSArray *objectArray = [NSArray arrayWithOjects:obj1,obj2,obj3,nil];
NSArray *keyArray = [NSArray arrayWithOjects:@"key1",@"key2,@"key3",nil];

NSDictionary *subDict = [NSDictionary dictionaryWithObjects:objectArray forKeys:keyArray];

// now create the main dictionary, which will hold your sub dictionary for one key
objectArray = [NSArray arrayWithObjects:,subDict,someObject,@"just a string"];
keyArray = [NSArray arrayWithObjects:@"first key",@"second key",@"third key"];

NSDictionary *mainDict = [NSDictionary dictionaryWithObjects:objectArray forKeys:keyArray];

Your example JSON would have the following structure:

A NSDictionary with a key "menu", which holds another NSDictionary. This Dictionary has the key "header", which holds a string, and the key "items" which holds an NSArray of NSDictionaries.

Upvotes: 1

Related Questions