iOS自带的JSON解决方案(NSJSONSerialization),它提供了针对NSDictionary、NSArray对象进行JSON数据的封包和解包。
1、JSON封包:
针对NSDictionary:
NSDictionary *mDic =[[NSDictionaryalloc]initWithObjectsAndKeys:@"Hello world", @"Hello";
NSData *jsonData = [NSJSONSerializationdataWithJSONObject:mDic options:0error:nil];
NSString *sendString = [[NSStringalloc]initWithData:jsonDataencoding:NSUTF8StringEncoding];
针对NSArray:
NSArray *mArray = [[NSMutableArrayalloc] init;
NSData *jsonData = [NSJSONSerialization dataWithJSONObject:mArray options:0 error:nil];
NSString *sendString = [[NSString alloc] initWithData:jsonData encoding:NSUTF8StringEncoding];
注:通过NSDictionary、NSArray的各种组合可以组件复杂的JSON格式数据
2、JSON解包:
针对NSDictionary:
NSString *mFilePath =@"./jsonData.json";
NSData *jsonData = [NSDatadataWithContentsOfFile:mFilePath];
NSDictionary *jsonDict = [NSJSONSerializationJSONObjectWithData:jsonDataoptions: NSJSONReadingMutableContainerserror:nil];
针对NSArray:
NSString *mFilePath = @"./jsonData.json";
NSData *jsonData = [NSData dataWithContentsOfFile:mFilePath];
NSArray *jsonArray = [NSJSONSerialization JSONObjectWithData:jsonData options: NSJSONReadingMutableContainers error:nil];
二、Android JSON封包与解包
Android自带的JSON解决方案(JSONObject、JSONStringer、JSONArray)
1、JSON封包
JSONObject jsonObject = new JSONObject();
JSONArray jsonArray = new JSONArray();
jsonArray.put("DeviceID").put("DeviceName");
jsonObject.put("jsonArray", jsonArray);
2、JSON解包:
private static final String strJSON = "...";
JSONTokener jsonParser = new JSONTakener(strJSON);
JSObject jsonObject = (JSONObject)jsonParser.nextValue();