diff --git a/Foundation/CPDictionary.j b/Foundation/CPDictionary.j index 8b5af8392..f0db3cfa1 100755 --- a/Foundation/CPDictionary.j +++ b/Foundation/CPDictionary.j @@ -153,8 +153,14 @@ continue; var value = object[key]; + + if (value == null) + { + [dictionary setObject:[CPNull null] forKey:key]; + continue; + } - if (recursively && value != null) + if (recursively) { if (value.constructor === Object) value = [CPDictionary dictionaryWithJSObject:value recursively:YES]; diff --git a/Tests/Foundation/CPDictionaryTest.j b/Tests/Foundation/CPDictionaryTest.j index 8a29cd853..3cdfd51df 100644 --- a/Tests/Foundation/CPDictionaryTest.j +++ b/Tests/Foundation/CPDictionaryTest.j @@ -67,9 +67,9 @@ - (void)testDictionaryWithJSObjectRecursiveWithNull { var dict = [CPDictionary dictionaryWithJSObject:json_with_nulls recursively:YES]; - [self assert:2 equals:[dict count]]; - [self assert:[@"key1", @"key2"] equals:[dict allKeys]]; - [self assert:[dict objectForKey:@"key3"] equals:nil]; + [self assert:3 equals:[dict count]]; + [self assert:[@"key1", @"key2", @"key3"] equals:[dict allKeys]]; + [self assert:[CPNull null] equals:[dict objectForKey:@"key3"]]; } - (void)testDictionaryWithJSObjectNonRecursive