json和xml在开发中回经常使用到,上次问同事ios设计到xml的请求是否存在,问答是快被淘汰了,xml在android的使用也很少
解析本地json文件
{ "settingView":"showContent", "mainViewModelData": [ { "contenttitle": "地图", "contentPage": "", "state": "1" }, { "contenttitle": "语音搜索", "contentPage": "", "state": "1" }, { "contenttitle": "推送消息", "contentPage": "", "state": "1" }, { "contenttitle": "二维码", "contentPage": "", "state": "1" }, { "contenttitle": "图片加载", "contentPage": "", "state": "1" }, { "contenttitle": "蓝牙", "contentPage": "", "state": "1" }, { "contenttitle": "NFC", "contentPage": "", "state": "1" }, { "contenttitle": "声纹", "contentPage": "", "state": "1" }, { "contenttitle": "脸部识别", "contentPage": "", "state": "1" }, { "contenttitle": "视频图片", "contentPage": "", "state": "1" } ] }
解析;
#pragma mark--json解析类 -(NSDictionary *)getJSONToString{ NSData *dataJSON=[NSData dataWithContentsOfFile:[[NSBundle mainBundle]pathForResource:main_json ofType:main_type]]; NSDictionary *dictionary=[NSJSONSerialization JSONObjectWithData:dataJSON options:0 error:nil]; return dictionary; }
//SettingViewBean自定义的model存储解析的数据 NSMutableArray *data=[[NSMutableArray alloc]init]; NSDictionary *dic =[self getJSONToString]; id dicArray=dic[@"mainViewModelData"]; for (id dic in dicArray) { if ([@"1" isEqualToString:dic[@"state"]]) { SettingViewBean *svb=[[SettingViewBean alloc]initWith:dic[@"contenttitle"] andContentPage:dic[@"contentPage"]]; [data addObject:svb]; [svb release]; } }
解析结果:
2016-03-20 18:02:14.195 UIControlStart[923:53112] showContent=地图,contentPage=
2016-03-20 18:02:14.196 UIControlStart[923:53112] showContent=语音搜索,contentPage=
2016-03-20 18:02:14.197 UIControlStart[923:53112] showContent=推送消息,contentPage=
2016-03-20 18:02:14.197 UIControlStart[923:53112] showContent=二维码,contentPage=
2016-03-20 18:02:14.198 UIControlStart[923:53112] showContent=图片加载,contentPage=
2016-03-20 18:02:14.198 UIControlStart[923:53112] showContent=蓝牙,contentPage=
2016-03-20 18:02:14.198 UIControlStart[923:53112] showContent=NFC,contentPage=
2016-03-20 18:02:14.199 UIControlStart[923:53112] showContent=声纹,contentPage=
2016-03-20 18:02:14.200 UIControlStart[923:53112] showContent=脸部识别,contentPage=
2016-03-20 18:02:14.201 UIControlStart[923:53112] showContent=视频图片,contentPage=
URLConnection请求数据
Commom *comom=[[Commom alloc]init]; NSMutableDictionary *dictionary=[[NSMutableDictionary alloc]init]; [dictionary setObject:@"苏州市" forKey:@"a"]; //http://gc.ditu.aliyun.com/geocoding?a=苏州市 [comom commomRequestPOSTURLAndParams:@"http://gc.ditu.aliyun.com/geocoding" andRequestParams:(NSMutableDictionary *) dictionary]; #pragma mark--//post请求网络 -(void)commomRequestPOSTURLAndParams:(NSString*)url andRequestParams:(NSMutableDictionary*)parmas{ __block NSData *dataParms; dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{ dispatch_async(dispatch_get_main_queue(), ^{ if ([parmas count]!=0) {//判断是否存在参数 dataParms= [NSJSONSerialization dataWithJSONObject:parmas options:NSJSONWritingPrettyPrinted error:nil]; NSLog(@"dataParms = %@,str = %@",dataParms,[[NSString alloc] initWithData:dataParms encoding:NSUTF8StringEncoding]); } NSURL *requestAddress= [[NSURL alloc] initWithString:url]; NSMutableURLRequest *request =[NSMutableURLRequest requestWithURL:requestAddress]; request.HTTPMethod=@"POST"; //此处发送一定要设置,这个地方把字典封装为json格式 // [request setValue:@"application/jason" forHTTPHeaderField:@"Content-Type"]; request.HTTPBody=dataParms; [request setValue:@"applocation/json" forHTTPHeaderField:@"Content-Type"]; NSOperationQueue *queue = [[NSOperationQueue alloc] init]; [NSURLConnection sendAsynchronousRequest:request queue:queue completionHandler:^(NSURLResponse * _Nullable response, NSData * _Nullable data, NSError * _Nullable connectionError) { NSLog(@"%@ \n -----> %@",data,[[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding]); NSLog(@"%@",connectionError); NSLog(@"fdlkasl"); }]; }); }); }
3,NSURLSession POST
//请求网络 Commom *comom=[[Commom alloc]init]; NSMutableDictionary *dictionary=[[NSMutableDictionary alloc]init]; [dictionary setObject:@"苏州市" forKey:@"a"]; //http://gc.ditu.aliyun.com/geocoding?a=苏州市 [comom commomRequestPOSTURLAndParams:@"http://gc.ditu.aliyun.com/geocoding" andRequestParams:(NSMutableDictionary *) dictionary]; #pragma mark--//post请求网络 -(void)commomRequestPOSTURLAndParams:(NSString*)url andRequestParams:(NSMutableDictionary*)parmas{ // __block NSData *dataParms; // // dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{ // // dispatch_async(dispatch_get_main_queue(), ^{ // // if ([parmas count]!=0) {//判断是否存在参数 // // dataParms= [NSJSONSerialization dataWithJSONObject:parmas options:NSJSONWritingPrettyPrinted error:nil]; // NSLog(@"dataParms=%@",dataParms); // // } // // NSURL *requestAddress= [[NSURL alloc]initWithString:url]; // //创建Session对象 // NSURLSession *session=[NSURLSession sharedSession]; // // NSMutableURLRequest *request =[NSMutableURLRequest requestWithURL:requestAddress]; // request.HTTPMethod=@"POST"; // //此处发送一定要设置,这个地方把字典封装为json格式 // // [request setValue:@"application/jason" forHTTPHeaderField:@"Content-Type"]; // [request setValue:@"applocation/json" forHTTPHeaderField:@"Content-Type"]; // // request.HTTPBody=dataParms; // // NSURLSessionTask *sessionTask= [session dataTaskWithRequest:request completionHandler:^(NSData * _Nullable data, NSURLResponse * _Nullable response, NSError * _Nullable error) { // // // // NSMutableDictionary *dict=[NSJSONSerialization JSONObjectWithData:data options:0 error:nil]; // // NSLog(@"get请求数据=%@",dict); // // }]; // // // [sessionTask resume]; // // }); // }); __block NSData *dataParms; dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{ dispatch_async(dispatch_get_main_queue(), ^{ if ([parmas count]!=0) {//判断是否存在参数 dataParms= [NSJSONSerialization dataWithJSONObject:parmas options:NSJSONWritingPrettyPrinted error:nil]; NSLog(@"dataParms=%@ ",[[NSString alloc] initWithData:dataParms encoding:NSUTF8StringEncoding]); } NSURL *requestAddress= [[NSURL alloc] initWithString:url]; NSLog(@"%@",[NSString stringWithFormat:@"%@?a=%@",url,[parmas objectForKey:@"a"]]); //创建Session对象 NSURLSession *session=[NSURLSession sharedSession]; NSMutableURLRequest *request =[NSMutableURLRequest requestWithURL:requestAddress]; request.HTTPMethod=@"POST"; //此处发送一定要设置,这个地方把字典封装为json格式 // [request setValue:@"application/jason" forHTTPHeaderField:@"Content-Type"]; [request setValue:@"applocation/json" forHTTPHeaderField:@"Content-Type"]; request.HTTPBody=dataParms; NSURLSessionTask *sessionTask= [session dataTaskWithRequest:request completionHandler:^(NSData * _Nullable data, NSURLResponse * _Nullable response, NSError * _Nullable error) { NSMutableDictionary *dict=[NSJSONSerialization JSONObjectWithData:data options:0 error:nil]; NSLog(@"post请求数据=%@",dict); NSLog(@"lat=%@",dict[@"lat"]); NSLog(@"lon=%@",dict[@"lon"]); }]; [sessionTask resume]; }); }); }
结果:
2016-03-20 18:02:18.200 UIControlStart[923:53294] post请求数据={
address = "";
alevel = 4;
cityName = "";
lat = "39.90403";
level = "-1";
lon = "116.40752";
}
2016-03-20 18:02:18.201 UIControlStart[923:53294] lat=39.90403
2016-03-20 18:02:18.201 UIControlStart[923:53294] lon=116.40752
4,NSURLSession GET
NSMutableDictionary *dictionary=[[NSMutableDictionary alloc]init]; [dictionary setObject:@"苏州市" forKey:@"a"]; http://gc.ditu.aliyun.com/geocoding?a=苏州市 [comom commomRequestGETURLAndParams:@"http://mobile.weather.com.cn/data/forecast/101010100.html?_=1381891660081" andRequestParams:(NSMutableDictionary *) dictionary]; #pragma mark--//get请求网络 -(void)commomRequestGETURLAndParams:(NSString*)url andRequestParams:(NSMutableDictionary*)parmas{ NSLog(@"parmas=%@",parmas); // __block NSData *dataParms; self = [super init]; if (self) { dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{ dispatch_async(dispatch_get_main_queue(), ^{ NSURLSession *session=[NSURLSession sharedSession]; NSURL *requestAddress= [[NSURL alloc]initWithString:url]; NSMutableURLRequest *request=[NSMutableURLRequest requestWithURL:requestAddress]; request.HTTPMethod=@"GET"; NSURLSessionDataTask *dataTask=[session dataTaskWithRequest:request completionHandler:^(NSData * _Nullable data, NSURLResponse * _Nullable response, NSError * _Nullable error) { NSDictionary *dic=[NSJSONSerialization JSONObjectWithData:data options:0 error:nil]; NSLog(@"get的数据=%@",dic); NSDictionary *dictc=dic[@"c"]; NSLog(@"dictc 的c1=%@",dictc[@"c1"]); }]; [dataTask resume]; }); }); } }
结果:
2016-03-20 18:07:22.172 UIControlStart[936:57551] get的数据={
c = {
c1 = 101010100;
c10 = 1;
c11 = 010;
c12 = 100000;
c13 = "116.391";
c14 = "39.904";
c15 = 33;
c16 = AZ9010;
c17 = "+8";
c2 = beijing;
c3 = "\U5317\U4eac";
c4 = beijing;
c5 = "\U5317\U4eac";
c6 = beijing;
c7 = "\U5317\U4eac";
c8 = china;
c9 = "\U4e2d\U56fd";
};
f = {
f0 = 201310121100;
f1 = (
{
fa = 01;
fb = 03;
fc = 10;
fd = 5;
fe = 0;
ff = 0;
fg = 0;
fh = 0;
fi = "06:21|17:40";
},
{
fa = 07;
fb = 07;
fc = 19;
fd = 12;
fe = 0;
ff = 0;
fg = 0;
fh = 0;
fi = "06:22|17:38";
},
{
fa = 02;
fb = 00;
fc = 15;
fd = 5;
fe = 8;
ff = 8;
fg = 3;
fh = 1;
fi = "06:23|17:37";
},
{
fa = 00;
fb = 00;
fc = 16;
fd = 4;
fe = 0;
ff = 0;
fg = 0;
fh = 0;
fi = "06:24|17:35";
},
{
fa = 00;
fb = 00;
fc = 18;
fd = 7;
fe = 0;
ff = 0;
fg = 0;
fh = 0;
fi = "06:25|17:34";
},
{
fa = 00;
fb = 01;
fc = 18;
fd = 8;
fe = 0;
ff = 0;
fg = 0;
fh = 0;
fi = "06:26|17:32";
},
{
fa = 01;
fb = 01;
fc = 16;
fd = 6;
fe = 0;
ff = 0;
fg = 0;
fh = 0;
fi = "06:27|17:31";
}
);
};
}
2016-03-20 18:07:22.172 UIControlStart[936:57551] dictc 的c1=101010100
相关推荐
在C++中,实现JSON解析和生成通常涉及以下几个关键概念: 1. **JSON对象(JSONObject)**:表示为键值对的集合,键是字符串,值可以是任何JSON类型。在实现时,可能需要创建一个类来表示JSON对象,包含一个字符串到...
总之,理解和掌握JSON的生成与解析对于Java和Android开发者至关重要。通过这两个库,我们可以轻松地在Java对象和JSON字符串之间进行转换,从而实现数据的存储、传输和交换。在实际项目中,务必注意错误处理,因为...
首先,JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,它易于人阅读和编写,同时也易于机器解析和生成。在AJAX中,我们通常使用JSON来序列化数据,因为它的结构与JavaScript对象相似,可以直接被...
通过调用`SatJson.dll`的相关方法,开发者可以将DataWindow、数组或Structure等对象转换成符合JSON规范的字符串,然后通过HTTP请求发送出去。 `test.exe`、`test.pbl`、`test.pbt`、`test.pbw`这些文件是Power...
总结来说,这个项目涵盖了Java Web开发的关键技术,包括Spring的依赖注入和事务管理,SpringMVC的Web层处理,MyBatis的数据库操作,以及JSON和HTTP请求的使用。通过集成这些技术,开发者可以快速构建出稳定、高效的...
本篇文章将重点解析JMX文件中的关键组件及其在处理JSON格式数据时的应用。 ### JMeter概述 Apache JMeter是一款开源的压力测试工具,主要用于进行Web应用的压力测试。它不仅可以用来测试静态和动态资源(例如静态...
例如,使用jQuery的`$.getJSON()`或`$.ajax()`方法,可以方便地向服务器请求JSON数据,并在回调函数中处理返回的结果。 Tiles框架则负责页面的布局和组件的复用。它允许我们将页面拆分为多个片段(Tiles),每个...
总结来说,"easyui-combobox、combotree后台数据数据组装与前台绑定实例" 主要涉及两个部分:后端 C# 数据组装成 JSON 格式,以及前端使用 EasyUI 的 Combobox 和 Combotree 组件进行数据绑定。通过这样的方式,我们...
4. **Json整合**:Json(JavaScript Object Notation)是一种轻量级的数据交换格式,易于人阅读和编写,同时也易于机器解析和生成。在SpringMVC中,可以使用Jackson或Gson库将Java对象转换为Json格式,方便前后端的...
前端使用jQuery监听用户事件,发送Ajax请求到Action,接收到JSON数据后解析并更新由Tiles构建的页面部分。这种方式既保留了后台的结构化和灵活性,也确保了前端的交互性和用户体验。 总的来说,"Struts2 Tiles JSON...
在Web开发中,尤其是在使用Ajax进行前后端交互时,经常需要将表单中的输入项收集起来并转换为JSON对象,以便于通过HTTP请求(如POST)发送至服务器端进行处理。传统方法是通过手动编写代码来获取每个输入字段的值,...
在给出的代码示例中,可以看到导入了`urllib.request`用于发送HTTP请求,`BeautifulSoup`用于解析HTML文档,`os`用于操作文件系统,`time`用于获取当前时间,`codecs`用于处理编码问题,以及`json`用于处理JSON数据...
Java提供了一些库来帮助解析这些格式,如Jackson库用于JSON解析,而Java内置的JAXB库可以用于XML的编解码。 在解析后重新封装消息,可能涉及到了对象的序列化和反序列化。Java的序列化机制允许将对象的状态转化为...
首先,JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,易于人阅读和编写,同时也易于机器解析和生成。在jstree中使用JSON数据构建树形结构,使得数据结构层次分明,同时便于前后端分离开发模式,...
- zTree通过解析JSON数据,动态渲染出树形结构。 以上就是关于"zTree后台组装树结构java代码"的主题知识,包括了zTree的使用、Java与MySQL的交互、递归算法构建树、Spring JDBC等内容。理解并掌握这些知识点,能够...
4. 解析响应:接收服务器返回的数据,并使用易语言的字符串处理和JSON解析功能,将数据解析成易语言能处理的对象。 5. 处理数据:根据解析出的订单信息,进行进一步的业务逻辑处理,如存储到数据库、显示在界面等。 ...
总结来说,`JSONObject`是Java处理JSON数据的强大工具,无论是在构建HTTP请求响应、存储配置信息还是与其他系统交换数据等方面,都有广泛的应用。这个“JSONObject完整jar包”提供了完整的功能,可以帮助开发者轻松...
此外,对于想要深入爬虫开发的开发者,了解HTML解析库(如HtmlAgilityPack)和JSON处理(如Newtonsoft.Json)也很重要,因为它们可以帮助解析和操作从服务器获取的数据。 总的来说,这份"HTTP Get POST 分析工具(c#...
通过以上详细解析,我们可以清楚地了解到如何使用 RestTemplate 的 `postForObject` 和 `postForEntity` 方法发送 POST 请求,并且了解了它们之间的区别及其应用场景。这对于开发基于 RESTful Web 服务的应用非常有...
易语言是一种专为中国人设计的编程语言,它以简体中文作为编程语法,降低了编程的门槛,使得更多非计算机专业的人也能...通过学习和模仿这个例子,你可以逐步掌握如何在实际项目中使用POST请求与服务器进行数据交互。