【问题标题】:how to create json in objective-c如何在objective-c中创建json
【发布时间】:2012-08-13 10:52:29
【问题描述】:
NSData* jsonDataToSendTheServer;

NSDictionary *setUser = [NSDictionary
            dictionaryWithObjectsAndKeys:[@"u" stringByAppendingString:my.id],@"id",
                                        @"GET_USER_INFO",@"command",
                                        @"",@"value",
                                        nil];

 NSLog(@"%@", jsonDataToSendTheServer);

这是我的代码。当我运行上面的代码时,我得到了这个打印

<7b226964 223a2275 35383738 37373334 31222c22 636f6d6d 616e6422 3a224745 545f5553 45525f49 4e464f22 2c227661 6c756522 3a22227d>

我不知道我是否可以创建一个 json。

我该如何解决这个问题?

【问题讨论】:

    标签: ios objective-c json nsjsonserialization


    【解决方案1】:

    您缺少将其转换为 json 的这一行

    NSData* jsonData = [NSJSONSerialization dataWithJSONObject:setUser 
                       options:NSJSONWritingPrettyPrinted error:&error];
    

    这里有一个关于 NSJSONSerialization 的教程,可能会对您有所帮助: http://www.raywenderlich.com/5492/working-with-json-in-ios-5

    之后,您可以将 NSData 转换为 NSString 进行打印:

    Convert UTF-8 encoded NSData to NSString

    【讨论】:

      【解决方案2】:

      您可以尝试以下创建 JSON:

      NSArray *objects=[[NSArray alloc]initWithObjects:objects here,nil];
      NSArray *keys=[[NSArray alloc]initWithObjects:corresponding keys of objects,nil];
      NSDictionary *dict=[NSDictionary dictionaryWithObjects:objects forKeys:keys];
      NSData *jsonData=[NSJSONSerialization dataWithJSONObject:dict options:NSJSONWritingPrettyPrinted error:&error];
      

      这在我的情况下非常有效

      【讨论】:

        【解决方案3】:

        试试下面

        NSDictionary *o1 = [NSDictionary dictionaryWithObjectsAndKeys:
        @"ABCD", @"key1",
        @"EFG", @"key2",
        nil];
        
        NSDictionary *o2 = [NSDictionary dictionaryWithObjectsAndKeys:
        @"XYZ", @"key1",
        @"POI", @"key2",
        nil];
        
        NSArray *array = [NSArray arrayWithObjects:o1, o2, nil];
        
        NSString *jsonString = [array JSONRepresentation];
        

        // 发送jsonString到服务器 执行上述代码后,jsonString包含:

        [
            {
                "key1": "ABCD",
                "key2": "EFG"
            },
            {
                "key1": "XYZ",
                "key2": "POI"
            }
        ]
        

        【讨论】:

        • JSONRepresentation 是第三方库的一部分,除非我遗漏了什么,否则这不是一个有效的答案。
        【解决方案4】:

        试试这个

        NSData *data=[NSData dataWithContentsOfURL:[NSURL URLWithString:@"http://api.iospond.com/api/index.php/GetData"]];
            NSError *error=nil;
            id response=[NSJSONSerialization JSONObjectWithData:data options:NSJSONReadingMutableContainers error:&error];
            NSLog(@"Your JSON Object: %@ Or Error is: %@", response, error);
        

        【讨论】:

          【解决方案5】:

          NSMutableString *mutableString = nil; NSString *string= @"";

          @try
          {
              if (mutableString == nil)
              {
                  mutableString = [[NSMutableString alloc] init];
              }
          
              [mutableString appendFormat:@"{"];
              [mutableString appendFormat:@"\"string1\":%@"",",@""];
              [mutableString appendFormat:@"\"string2\":\"%@\"",@""];
              [mutableString appendFormat:@"}"];
              jsonString = mutableString ;
          }
          @catch (NSException *exception)
          {
          
          }
          @finally
          {
              return string;
          }
          

          【讨论】:

            【解决方案6】:
            NSDictionary *jsonObject = @{
                                             @"a":@[
                            @{
                                                         @"title1”:@“AA”,
                                                         @"title2” : @“BB”,
                                                         @"subcats" : @[
                                                                 @{
                                                                     @"title1” : @“CC”,
                                                                     @"title2” :@“DD”
                                                                     }
            
                                                                 ]
            
                                                         }
                                                     ]
            
            
            
                                             };
            

            【讨论】:

              猜你喜欢
              • 1970-01-01
              • 2014-04-20
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 2013-02-20
              • 2015-03-13
              • 1970-01-01
              • 1970-01-01
              相关资源
              最近更新 更多