在Objective c中将文本转换为json

时间:2014-03-03 04:43:47

标签: ios json

我有一个字符串,我想在iOS中将其转换为JSON,但是当我使用nil解析它时它返回jsonkit。我的字符串格式如下。

[
    { index:0, title:ARPPU },
    { index:1, title:ARPU },
    { index:2, title:Conversion },
    { index:3, title:DAU },
    { index:4, title:DAU },
]

任何人都知道如何转换为JSON对象?任何帮助表示赞赏。

3 个答案:

答案 0 :(得分:1)

我在这里看到的问题是你的JSON字符串无效。验证您的JSON here

试试这个

 NSString *strJson = @"[{\"index\": \"0\",\"title\": \"ARPPU\"}]";
    id jsonObj = [NSJSONSerialization JSONObjectWithData:[strJson dataUsingEncoding:NSUTF8StringEncoding] 
                                              options:NSJSONReadingMutableContainers error:nil];

这对我有用。

答案 1 :(得分:0)

首先修复JSON字符串,请参阅Introducing JSONW3Schools

然后它是一个JSONstring表示。

转换为NSData并使用JSONObjectWithData:options:error:

NSString *JSONStringRepresentation= @"["
@"{ \"index\":0, \"title\":\"ARPPU\" },"
@"{ \"index\":1, \"title\":\"ARPU\" },"
@"{ \"index\":2, \"title\":\"Conversion\" },"
@"{ \"index\":3, \"title\":\"DAU\" },"
@"{ \"index\":4, \"title\":\"DAU\" },"
@"]";

NSData *JSONAsData = [JSONStringRepresentation dataUsingEncoding:NSUTF8StringEncoding];
NSError *error;
NSArray *JSONAsArrayObject = [NSJSONSerialization JSONObjectWithData:JSONAsData  options:0 error:&error];
NSLog(@"JSONAsArrayObject: %@", JSONAsArrayObject);

NSLog输出:

  

JSONAsArrayObject :(
      {
          index = 0;
          title = ARPPU;
      },
          {
          index = 1;
          title = ARPU;
      },
          {
          index = 2;
          title =转换;
      },
          {
          index = 3;
          title = DAU;
      },
          {
          index = 4;
          title = DAU;
      })

答案 2 :(得分:0)

使用NSUTF8Encoding将您的字符串转换为NSData并执行JSONSerialisation以使其成为JSON

// Converting Your String to NSData
NSString *myString=@"[
{ index:0, title:ARPPU },
{ index:1, title:ARPU },
{ index:2, title:Conversion },
{ index:3, title:DAU },
{ index:4, title:DAU },
]";
// Converts the string to Data 
NSData* data = [myString dataUsingEncoding:NSUTF8StringEncoding];
// Does JSONSerialisation and convert the data into JSON
NSDictionary*dict=[NSJSONSerialization JSONObjectWithData:data options:0 error:nil];
// Prints here the JSON 
NSLog(@"Dict value==%@",dict);