NSString,NSArray和NSDictionary to JSON标准格式字符串

#import <Foundation/Foundation.h>

@interface NSString (HXAddtions)

+(NSString *) jsonStringWithDictionary:(NSDictionary *)dictionary;

+(NSString *) jsonStringWithArray:(NSArray *)array;

+(NSString *) jsonStringWithString:(NSString *) string;

+(NSString *) jsonStringWithObject:(id) object;

+(void) jsonTest;

@end

//

//  NSString+HXAddtions.m

//  HXWeb

//

//  Created by hufeng on 12-2-13.

//  Copyright (c) 2012年 __MyCompanyName__. All rights reserved.

//

#import "NSString+HXAddtions.h"

@implementation NSString (HXAddtions)

+(void)jsonTest{

//test

NSDictionary *dictionary1 = [NSDictionary dictionaryWithObjectsAndKeys:

@"阿三\"\n11",@"name",

@"18",@"age",

nil];

NSDictionary *dictionary2 = [NSDictionary dictionaryWithObjectsAndKeys:

@"阿四",@"name",

@"20",@"age",

nil];

NSArray *array = [NSArray arrayWithObjects:dictionary1,dictionary2, nil];

NSDictionary *dictionary3 = [NSDictionary dictionaryWithObjectsAndKeys:

@"李\na",@"name",

@"29",@"age",

nil];

NSDictionary *dictionary = [NSDictionary dictionaryWithObjectsAndKeys:

@"string",@"string",

array,@"array",

dictionary3,@"dictionary",

nil];

NSLog(@"dictionary:%@",dictionary);

NSString *jsonString = [NSString jsonStringWithObject:dictionary];

NSLog(@"dictionary jsonString:%@",jsonString);

NSLog(@"%@",[NSDictionary dictionaryWithData:[jsonString dataUsingEncoding:NSUTF8StringEncoding]]);

}

+(NSString *) jsonStringWithString:(NSString *) string{

return [NSString stringWithFormat:@"\"%@\"",

[[string stringByReplacingOccurrencesOfString:@"\n" withString:@"\\n"] stringByReplacingOccurrencesOfString:@"\""withString:@"\\\""]

];

}

+(NSString *) jsonStringWithArray:(NSArray *)array{

NSMutableString *reString = [NSMutableString string];

[reString appendString:@"["];

NSMutableArray *values = [NSMutableArray array];

for (id valueObj in array) {

NSString *value = [NSString jsonStringWithObject:valueObj];

if (value) {

[values addObject:[NSString stringWithFormat:@"%@",value]];

}

}

[reString appendFormat:@"%@",[values componentsJoinedByString:@","]];

[reString appendString:@"]"];

return reString;

}

+(NSString *) jsonStringWithDictionary:(NSDictionary *)dictionary{

NSArray *keys = [dictionary allKeys];

NSMutableString *reString = [NSMutableString string];

[reString appendString:@"{"];

NSMutableArray *keyValues = [NSMutableArray array];

for (int i=0; i<[keys count]; i++) {

NSString *name = [keys objectAtIndex:i];

id valueObj = [dictionary objectForKey:name];

NSString *value = [NSString jsonStringWithObject:valueObj];

if (value) {

[keyValues addObject:[NSString stringWithFormat:@"\"%@\":%@",name,value]];

}

}

[reString appendFormat:@"%@",[keyValues componentsJoinedByString:@","]];

[reString appendString:@"}"];

return reString;

}

+(NSString *) jsonStringWithObject:(id) object{

NSString *value = nil;

if (!object) {

return value;

}

if ([object isKindOfClass:[NSString class]]) {

value = [NSString jsonStringWithString:object];

}else if([object isKindOfClass:[NSDictionary class]]){

value = [NSString jsonStringWithDictionary:object];

}else if([object isKindOfClass:[NSArray class]]){

value = [NSString jsonStringWithArray:object];

}

return value;

}

@end

时间: 2024-08-02 11:02:47

NSString,NSArray和NSDictionary to JSON标准格式字符串的相关文章

iOS 将NSArray、NSDictionary转换为JSON格式进行网络传输

http://blog.csdn.net/worldzhy/article/details/49982491 将NSArray.NSDictionary转换为JSON格式进行网络传输,是经常用到的,但是iOS没有提供方便的方法库.我们模拟一个实例,假设我们需要把一个自定义的一个模型(只有若干属性的Class)的数组转为一个JSON字符串,作为后端需要的一个参数传给后端,下面给出了实现方法: [objc] view plain copy //HSPictureModel数组转为json - (NS

JSON标准格式

标准JSON的合法符号:{(左大括号)  }(右大括号)  "(双引号)  :(冒号)  ,(逗号)  [(左中括号)  ](右中括号) JSON字符串:特殊字符可在字符前面加 \ 或使用 \u 加 4位16进制数来处理 {"name":"jobs"} JSON布尔:必须小写的true和false {"bool":true} JSON空:必须小写的null {"object":null} JSON数值:不能使用8/1

NSData NSDate NSString NSArray NSDictionary 相互转化

//    NSData  NSDate NSString NSArray NSDictionary json NSString *string = @"hello word"; NSData *data = [string dataUsingEncoding:NSUTF8StringEncoding]; NSArray *array = [NSArray arrayWithObjects:@"1",@"2",@"3",nil

子做嘴柞兹谞wisvfsNSDictionary,NSArray转成NSData(JSON)NSString类型

ufifgbNSDictionary,NSArray转成NSData(JSON)NSString类型NSDictionary,NSArray转成NSData(JSON)NSString类型纂诅租灼柞谞 v1795qp.cn.ec51.com/ 592r727.cn.ec51.com/ f31b6ca.cn.ec51.com/ s48ctk5.cn.ec51.com/ s9d9u37.cn.ec51.com/ r8jo5n7.cn.ec51.com/ p813g69.cn.ec51.com/ 4a

关于NSString,NSMutableString,NSArray,NSMutableArray,NSDictionary,NSMutableDictionary

NSString,NSMutableString,NSArray,NSMutableArray,NSDictionary,NSMutableDictionary 在 OC 中我们天天都要用,而我们要怎么学习它们呢? 我认为学习这些常用的类,使用类比的方法就行了,只要学会一个类,就能类比另外两个类了.. 比如,NSString和NSMutableString的可变与不可变,主要区分的标准是,它们本身是不是可以变,可变的一般都能增,删,改,而不可变的方法主要是创建,查看,得到元素个数或者长度等等;

NSData NSDate NSString NSArray NSDictionary 相互转换

// NSData NSDate NSString NSArray NSDictionary json NSString *string = @"hello word"; NSData *data = [string dataUsingEncoding:NSUTF8StringEncoding]; NSArray *array = [NSArray arrayWithObjects:@"1",@"2",@"3",nil]; N

Fouandation(NSString ,NSArray,NSDictionary,NSSet) 中常见的理解错误区

Fouandation 中常见的理解错误区 1.NSString //快速创建(实例和类方法) 存放的地址是 常量区 NSString * string1 = [NSString alloc]initWithString:@“123”]; NSString * string3 = [NSString stringWithString:@“123”]; //格式化方法创建   存放地址是堆区 NSString * string2 = [NSString alloc]initWithFormat:@

NSString,NSMutableString, NSArray ,NSMutableArray,NSDictionary,NSMutableDictionary 深拷贝,浅拷贝分析

NSString,NSMutableString, NSArray ,NSMutableArray,NSDictionary,NSMutableDictionary 深拷贝,浅拷贝. 首先我们得知道什么是深拷贝,什么事浅拷贝. 简单点说深拷贝就是拷贝内容,浅拷贝就是拷贝指针. 上面那些类我们可以这样理解他们的深.浅拷贝.只要上面那些类中的NSString,NSArray,NSDictionary这三个类的实例化对象是调用copy方法进行拷贝那么他们拷贝的就是一个指针,就是说他们只是拷贝了一个指向

json字符串的标准格式

现在越来越多的项目和开发插件等默认都会支持和使用json数据格式,作为数据保持.传输的一种方式. 说是其中一种,就标示还有好多其他格式.比如:最多是xml.webservice的标准数据格式. 不过由于json是JavaScript 对象表示法(JavaScript Object Notation),天生就对js支持很好, 所以现在很多的ajax等都使用json,反而会更好处理一些. 1.定义 什么是 JSON ?1.JSON 指的是 JavaScript 对象表示法(JavaScript Ob