将我的nsstring转换为json

时间:2013-01-13 19:32:49

标签: ios objective-c json parsing

我是json的新手并且混淆了如何做到这一点。我有以下基本信息,我需要转换

    "trailer":
         "window":"broken"
         "sidesteps":"dent"
    "tractor":
        "window":"craked"
        "sidesteps":"missing"
     "tire":
        "tire1":
            "pressure":"120"
            "rim":"good"
         "tire2":
            "pressure":"120"
            "rim":"good"

2 个答案:

答案 0 :(得分:3)

根据从textFields中提取的所有值创建字典。它看起来像这样,

NSDictionary *dictionary = @{@"trailer":@{@"window":@"broken", @"sidesteps":@"missing", @"tractor": @{@"window":@"broken",@"sidesteps":@"missing"}, @"tire":@{@"tire1" : @{@"pressure" : @"120", @"rim":@"good"}}}};

输出:

dictionary =   {
        "trailer": {
            "window": "broken",
            "sidesteps": "missing",
            "tractor": {
                "window": "broken",
                "sidesteps": "missing"
            },
            "tire": {
                "tire1": {
                    "pressure": "120",
                    "rim": "good"
                }
            }
        }
    }

您可以使用NSMutableDictionary动态创建类似的结构。您可以创建多个可变字典并将其添加为另一个字典的对象以实现上述结果。

要转换为JSON数据,您可以执行此操作,

NSError *error;
NSData *postData = [NSJSONSerialization dataWithJSONObject:dictionary options:NSJSONWritingPrettyPrinted error:&error];

如果要转换为字符串以查看数据,

NSString *jsonString = [[NSString alloc] initWithData:postData encoding:NSStringEncodingConversionAllowLossy];
NSLog(@"jsonString = %@", jsonString);

如果您想将此帖子设置为http请求并将其传递给服务器,您可以将其设置为,

[urlRequest setHTTPBody:postData];

答案 1 :(得分:1)

假设您知道这不是合法的JSON,并且它应该是一个原理图表示,它代表一组嵌套的NSDictionary对象。外部字典包含键“trailer”,“tractor”和“tire”,并且每个都对应于NSDictionary。 “预告片”的NSDictionary有键“窗口”和“避开”。其他类似,只有“轮胎”有另一层NSDictionary嵌套。

关于从文本字段中获取值,这取决于您。你的UI设计是什么样的?如果这些是固定字段(键值始终相同),那么您可以让用户在列表中填写多个文本字段。