Objective-C写出Json文件(可作配置文件)
自己想尝试一下自己写出json文件,或许可以用来写一些配置文件的内容,比如说是不同的设备的型号的不同的字体、颜色,或者说是要展示一些内容的时候根据这个json文件来写明不同的内容显示成不同的字体、颜色。当然可能并没说会有这种需求。那都没关系。之前都是从后台给的接口获取json文件,这次自己尝试一下自己写个json文件感觉也挺好。
代码如下:
/**
试着得到一个json格式的json字符串 @return json格式的json字符串
*/
- (NSString *)WriteJsonTest{
NSArray *currentDeviceArr = @[@"ipad mini",@"ipadAir2",@"ipad9.7",@"iPadPro10.5",@"iPad12.9"];
NSArray *fontSizeArr = @[@,@,@,@,@];
NSArray *colorArr = @[@"red",@"blue",@"yellow",@"black",@"white"];
NSMutableArray <NSMutableDictionary *>*arrM = [NSMutableArray array];
for (NSInteger i = ; i <fontSizeArr.count; i++) {
NSMutableDictionary *dictM = [NSMutableDictionary dictionary];
[dictM setObject:currentDeviceArr[i] forKey:@"currentDeviceType"];
[dictM setObject:colorArr[i] forKey:@"color"];
[dictM setObject:fontSizeArr[i] forKey:@"fontSize"];
[arrM addObject:dictM];
}
NSData *data = [NSJSONSerialization dataWithJSONObject:arrM options:NSJSONWritingPrettyPrinted error:nil];
NSString * jsonStr = [[NSString alloc]initWithData:data encoding:NSUTF8StringEncoding];
//下边以字符串的形式打印出来内容可以直接放到查看json文件的地方,转换为json。直接转换出的json有时把中括号又变成小括号还有可能逗号的数目也有问题等。
WWLog(@"%@",jsonStr);
id json = [NSJSONSerialization JSONObjectWithData:data options:NSJSONReadingAllowFragments error:nil];
if ([NSJSONSerialization isValidJSONObject:json]) {
WWLog(@"有效json");
}else{
WWLog(@"无效json");
}
WWLog(@"%@",json);
return jsonStr;
}
打印结果如下:
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在线解析工具后可以看到如下图片

如有错误 敬请指正
如需转载 请注明出处 谢谢
Objective-C写出Json文件(可作配置文件)的更多相关文章
- 将JSON对象带有格式的写出到文件中
需求:将一个JSON对象写出到文件中,要求文件中的JSON数据带有简单的格式.代码的实现参考了Java算法中的栈处理括号匹配问题.好了,不多说了,下面是代码的实现. 代码: package gemu. ...
- NIO学习:buffer读入与写出(文件复制示例)
FileInputStream fInputStream=new FileInputStream(new File("/root/Desktop/testImage.jpg")); ...
- C++使用htslib库读入和写出bam文件
有时候我们需要使用C++处理bam文件,比如取出read1或者read2等符合特定条件的序列,根据cigar值对序列指定位置的碱基进行统计或者对序列进行处理并输出等,这时我们可以使用htslib库 ...
- MapReduce实例——求平均值,所得结果无法写出到文件的错误原因及解决方案
1.错误原因 mapreduce按行读取文本,map需要在原有基础上增加一个控制语句,使得读到空行时不执行write操作,否则reduce不接受,也无法输出到新路径. 2.解决方案 原错误代码 pub ...
- (数据科学学习手札143)为geopandas添加gdb文件写出功能
本文示例代码已上传至我的Github仓库https://github.com/CNFeffery/DataScienceStudyNotes 1 简介 大家好我是费老师,很多读者朋友跟随着我先前写作的 ...
- 通过Jquery中Ajax获取json文件数据
1. JSON(JavaScript Object Notation): javaScript对象表示法: 是存储和交换文本信息的语法,比xml更小,更快,更易解析. 2. JSON基本书写格式 : ...
- Asp.Net MVC 读取json文件
有些系统上面的配置可以做成config里面的appsetting.这里要求写在json文件里面. 首先 添加命名空间 using Newtonsoft.Json; using System.IO; u ...
- python操作json文件获取内容
写case时,将case 写到json文件比写到,写python一定要学会处理json 以下,是要处理的json 处理操作包括:打开json文件,获取json文件内容,关闭json文件,读取内容中的对 ...
- java中的文件读取和文件写出:如何从一个文件中获取内容以及如何向一个文件中写入内容
import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.File; import java.io.Fi ...
随机推荐
- 构建混合应用方式之 - Azure混合连接
前面介绍了通过WCF中继构建混合应用的方式,由于对WCF的依赖,使得其使用有一定的局限性,基本上只适用于本地服务是WCF的.NET应用.而混合连接则弥补了这一块的缺陷,除了支持原有WCF中继的功能之外 ...
- JAVA实用案例之水印开发
写在最前面 上周零零碎碎花了一周的时间研究水印的开发,现在终于写了个入门级的Demo,做下笔记同时分享出来供大家参考. Demo是在我上次写的 JAVA实用案例之文件导入导出(POI方式) 框架基础上 ...
- kali ssh服务连接问题,无法远程管理
1.修改sshd_config文件,命令为:vi /etc/ssh/sshd_config 2.将#PasswordAuthentication no的注释去掉,并且将NO修改为YES 3.将#Per ...
- javaSE 第77节课
1.InetAddress InetAddress是地址的封装类,也可通过它来获得当前的操作地址(1)获得电脑当前上网的IP地址 (2)与服务器连接操作 (3) 二.MD5加密文件 文件本地秒传操作例 ...
- Jenkins: 执行 PowerShell 命令
Jenkins 默认是不支持执行 PowerShell 命令的,需要安装插件才能完成这样的任务.本文将介绍 Jenkins PoserShell 插件的基本用法和常见问题. 安装 PowerShell ...
- nyoj_120: 校园网络
题目链接 要加边使一个图成为一个强连通分量,只需加max(出度为0的点数,入度为0的点数)条边(可以不使用tarjan算法).题目数据有点弱,网上一些人所谓 结果 = 出度为0的点的数量+入度为0的点 ...
- [luogu P3797] 妖梦斩木棒 [线段树]
题目背景 妖梦是住在白玉楼的半人半灵,拥有使用剑术程度的能力. 题目描述 有一天,妖梦正在练习剑术.地面上摆放了一支非常长的木棒,妖梦把它们切成了等长的n段.现在这个木棒可以看做由三种小段构成,中间的 ...
- WEB安全:文件上传漏洞
文件上传漏洞过程 用户上传了一个可执行的脚本文件,并通过此脚本文件获得了执行服务器端命令的能力. 一般的情况有: 上传文件WEB脚本语言,服务器的WEB容器解释并执行了用户上传的脚本,导致代码执行: ...
- 【css】border-image
1. border-image 一个新css3 样式 给边框增加图片,还可以拉升 或重复图片 round 为重复 sketch 为拉升 border: 15px solid transparent; ...
- 解决Ubuntu手动安装vim后无法正常…
首先声明这个问题很坑爹~ 问题描述:下载了vim7.3版本的源码,在虚拟机里面的ubuntu12中手动安装成功后.在使用vim编辑文档时,进入编辑模式出现如下现象:1.使用方向键会打印出"A ...