2015-05-12 2 views
0

Я не могу сериализовать отрицательное целое по NSJSONSerialization.Могу ли я сериализовать отрицательное целое по NSJSONSerialization?

Objective-C:

NSMutableDictionary *sendData = [NSMutableDictionary dictionaryWithObjectsAndKeys: 
          @480, @"width", 
          @800, @"height" 
          @-10, @"value1", 
          @10, @"value2", nil]; 


NSError *error = nil; 
NSData *dataJSon = [NSJSONSerialization dataWithJSONObject:sendData options:0 error:&error]; 
NSLog(@"sendData\n %@ \n\n", [sendData description]); 

Вход

sendData{ 
      width = 480;  // int 
      height = 800;  // int 
      value1 = "-10"; // string. Not integer!! 
      value2 = 10;  // int 
      } 

Как сериализовать отрицательное число?

+0

Нет, вы не можете! NSMutableDictionary - это структура данных на основе ключевых значений. Для сериализации вы можете поддерживать дополнительный массив ключей на основе отсортированных значений. –

+0

вы хотите сериализовать значение = «-10»; на строку или что-то правильное –

ответ

2

Вы правы, и все в порядке. Это просто описание словаря, вводящего в заблуждение.

NSMutableDictionary *sendData = [NSMutableDictionary dictionaryWithObjectsAndKeys: 
            [NSNumber numberWithInt:-10], @"value1", 
            [NSNumber numberWithInt:10], @"value2", nil]; 


    NSError *error = nil; 
    NSData *dataJSon = [NSJSONSerialization dataWithJSONObject:sendData options:0 error:&error]; 
    NSLog(@"sendData\n %@ \n\n", [sendData objectForKey:@"value1"]);