zoukankan      html  css  js  c++  java
  • 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:
                                     @"阿三" 11",@"name",
                                     @"18",@"age",
                                     nil];
        NSDictionary *dictionary2 = [NSDictionary dictionaryWithObjectsAndKeys:
                                     @"阿四",@"name",
                                     @"20",@"age",
                                     nil];
        
        NSArray *array = [NSArray arrayWithObjects:dictionary1,dictionary2, nil];
        
        
        NSDictionary *dictionary3 = [NSDictionary dictionaryWithObjectsAndKeys:
                                     @" a",@"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:@" " 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
  • 相关阅读:
    【bzoj5180】[Baltic2016]Cities 斯坦纳树
    【BZOJ1859】【ZJOI2006】碗的叠放
    【bzoj4589】Hard Nim FWT+快速幂
    【BZOJ1502】【NOI2005】月下柠檬树 simpson 积分
    【loj6437】 【PKUSC2018】 PKUSC 计算几何
    【PKUSC2018】【loj6433】最大前缀和 状压dp
    【pkuwc2018】 【loj2537】 Minmax DP+线段树合并
    多项式求逆元详解+模板 【洛谷P4238】多项式求逆
    【bzoj3684】 大朋友和多叉树 生成函数+多项式快速幂+拉格朗日反演
    【codeforces 623E】dp+FFT+快速幂
  • 原文地址:https://www.cnblogs.com/lhx2015/p/4834382.html
Copyright © 2011-2022 走看看