zoukankan      html  css  js  c++  java
  • Objective-C写出Json文件(可作配置文件)

    自己想尝试一下自己写出json文件,或许可以用来写一些配置文件的内容,比如说是不同的设备的型号的不同的字体、颜色,或者说是要展示一些内容的时候根据这个json文件来写明不同的内容显示成不同的字体、颜色。当然可能并没说会有这种需求。那都没关系。之前都是从后台给的接口获取json文件,这次自己尝试一下自己写个json文件感觉也挺好。

    代码如下:

     1 /**
     2  试着得到一个json格式的json字符串
     3 
     4  @return json格式的json字符串
     5  */
     6 - (NSString *)WriteJsonTest{
     7     NSArray *currentDeviceArr = @[@"ipad mini",@"ipadAir2",@"ipad9.7",@"iPadPro10.5",@"iPad12.9"];
     8     NSArray *fontSizeArr = @[@18,@20,@22,@24,@26];
     9     NSArray *colorArr = @[@"red",@"blue",@"yellow",@"black",@"white"];
    10     NSMutableArray <NSMutableDictionary *>*arrM = [NSMutableArray array];
    11     for (NSInteger i = 0; i <fontSizeArr.count; i++) {
    12         NSMutableDictionary *dictM = [NSMutableDictionary dictionary];
    13         [dictM setObject:currentDeviceArr[i] forKey:@"currentDeviceType"];
    14         [dictM setObject:colorArr[i] forKey:@"color"];
    15         [dictM setObject:fontSizeArr[i] forKey:@"fontSize"];
    16         [arrM addObject:dictM];
    17     }
    18     NSData *data = [NSJSONSerialization dataWithJSONObject:arrM options:NSJSONWritingPrettyPrinted error:nil];
    19     NSString * jsonStr = [[NSString alloc]initWithData:data encoding:NSUTF8StringEncoding];
    20     //下边以字符串的形式打印出来内容可以直接放到查看json文件的地方,转换为json。直接转换出的json有时把中括号又变成小括号还有可能逗号的数目也有问题等。
    21     WWLog(@"%@",jsonStr);
    22     id json = [NSJSONSerialization JSONObjectWithData:data options:NSJSONReadingAllowFragments error:nil];
    23     if ([NSJSONSerialization isValidJSONObject:json]) {
    24         WWLog(@"有效json");
    25     }else{
    26         WWLog(@"无效json");
    27     }
    28     WWLog(@"%@",json);
    29     return jsonStr;
    30 }

    打印结果如下:

    2017-08-24 11:51:07.494 WWDemo[5180:131035] -[WWTestUIViewController WriteJsonTest] [Line 52] [

      {

        "color" : "red",

        "currentDeviceType" : "ipad mini",

        "fontSize" : 18

      },

      {

        "color" : "blue",

        "currentDeviceType" : "ipadAir2",

        "fontSize" : 20

      },

      {

        "color" : "yellow",

        "currentDeviceType" : "ipad9.7",

        "fontSize" : 22

      },

      {

        "color" : "black",

        "currentDeviceType" : "iPadPro10.5",

        "fontSize" : 24

      },

      {

        "color" : "white",

        "currentDeviceType" : "iPad12.9",

        "fontSize" : 26

      }

    ]

    2017-08-24 11:51:07.494 WWDemo[5180:131035] -[WWTestUIViewController WriteJsonTest] [Line 56] 有效json

    2017-08-24 11:51:07.495 WWDemo[5180:131035] -[WWTestUIViewController WriteJsonTest] [Line 60] (

    {

    color = red;

    currentDeviceType = ipad mini;

    fontSize = 18;

    }

    ,

    {

    color = blue;

    currentDeviceType = ipadAir2;

    fontSize = 20;

    }

    ,

    {

    color = yellow;

    currentDeviceType = ipad9.7;

    fontSize = 22;

    }

    ,

    {

    color = black;

    currentDeviceType = iPadPro10.5;

    fontSize = 24;

    }

    ,

    {

    color = white;

    currentDeviceType = iPad12.9;

    fontSize = 26;

    }

    ,

    )

    把上边的获得的jsonStr复制到json在线解析工具后可以看到如下图片

     

     

    如有错误 敬请指正

    如需转载 请注明出处 谢谢

     

    我会不定期分享 iOS 相关技术文章
  • 相关阅读:
    linux 实现一列数据的求和、累积求和、及1/2求和
    linux系统中如何删除某些文件或者某一类以外的所有文件
    linux系统中查看系统内核、发行版本信息
    linux系统中如何将当前目录下的文件从大到小排序和从小到大排序
    c语言中float关键字和double关键字的区别
    linux 系统如何给软件设置环境变量
    使用detectRUNS包进行ROH检测,计算近交系数实践
    诸城模拟赛 dvd的逆序对
    codevs1316 文化之旅
    codevs2800 送外卖
  • 原文地址:https://www.cnblogs.com/ITCoderW/p/7422481.html
Copyright © 2011-2022 走看看