- Update
This commit is contained in:
1 parent
d281d765ea
commit
5b074a5176
1261 files changed
+199158
-7303
No files matched your search
@@ -0,0 +1,21 @@
|
||||
#import <Foundation/Foundation.h>
|
||||
#if TARGET_OS_IPHONE
|
||||
#import "DDXML.h"
|
||||
#endif
|
||||
|
||||
@interface NSXMLElement (XEP_0335)
|
||||
|
||||
- (NSXMLElement *)JSONContainer;
|
||||
|
||||
- (BOOL)isJSONContainer;
|
||||
- (BOOL)hasJSONContainer;
|
||||
|
||||
- (NSString *)JSONContainerString;
|
||||
- (NSData *)JSONContainerData;
|
||||
- (id)JSONContainerObject;
|
||||
|
||||
- (void)addJSONContainerWithString:(NSString *)JSONContainerString;
|
||||
- (void)addJSONContainerWithData:(NSData *)JSONContainerData;
|
||||
- (void)addJSONContainerWithObject:(id)JSONContainerObject;
|
||||
|
||||
@end
|
||||
@@ -0,0 +1,87 @@
|
||||
#import "NSXMLElement+XEP_0335.h"
|
||||
#import "NSXMLElement+XMPP.h"
|
||||
|
||||
#if ! __has_feature(objc_arc)
|
||||
#warning This file must be compiled with ARC. Use -fobjc-arc flag (or convert project to ARC).
|
||||
#endif
|
||||
|
||||
#define XEP_0335_NAME @"json"
|
||||
#define XEP_0335_XMLNS @"urn:xmpp:json:0"
|
||||
|
||||
@implementation NSXMLElement (XEP_0335)
|
||||
|
||||
- (NSXMLElement *)JSONContainer
|
||||
{
|
||||
if([self isJSONContainer])
|
||||
{
|
||||
return self;
|
||||
}
|
||||
else
|
||||
{
|
||||
return [self elementForName:XEP_0335_NAME xmlns:XEP_0335_XMLNS];
|
||||
}
|
||||
}
|
||||
|
||||
- (BOOL)isJSONContainer
|
||||
{
|
||||
if([[self name] isEqualToString:XEP_0335_NAME] && [[self xmlns] isEqualToString:XEP_0335_XMLNS])
|
||||
{
|
||||
return YES;
|
||||
}
|
||||
else
|
||||
{
|
||||
return NO;
|
||||
}
|
||||
}
|
||||
|
||||
- (BOOL)hasJSONContainer
|
||||
{
|
||||
return [self elementForName:XEP_0335_NAME xmlns:XEP_0335_XMLNS] != nil;
|
||||
}
|
||||
|
||||
- (NSString *)JSONContainerString
|
||||
{
|
||||
return [[self JSONContainer] stringValue];
|
||||
}
|
||||
|
||||
- (NSData *)JSONContainerData
|
||||
{
|
||||
NSString *JSONContainerString = [self JSONContainerString];
|
||||
return [JSONContainerString dataUsingEncoding:NSUTF8StringEncoding];
|
||||
}
|
||||
|
||||
- (id)JSONContainerObject
|
||||
{
|
||||
NSData *JSONData = [self JSONContainerData];
|
||||
return [NSJSONSerialization JSONObjectWithData:JSONData options:0 error:nil];
|
||||
}
|
||||
|
||||
- (void)addJSONContainerWithString:(NSString *)JSONContainerString
|
||||
{
|
||||
if([JSONContainerString length])
|
||||
{
|
||||
NSXMLElement *container = [NSXMLElement elementWithName:XEP_0335_NAME xmlns:XEP_0335_XMLNS];
|
||||
[container setStringValue:JSONContainerString];
|
||||
[self addChild:container];
|
||||
}
|
||||
}
|
||||
|
||||
- (void)addJSONContainerWithData:(NSData *)JSONContainerData
|
||||
{
|
||||
if([JSONContainerData length])
|
||||
{
|
||||
NSString *JSONContainerString = [[NSString alloc] initWithData:JSONContainerData encoding:NSUTF8StringEncoding];
|
||||
[self addJSONContainerWithString:JSONContainerString];
|
||||
}
|
||||
}
|
||||
|
||||
- (void)addJSONContainerWithObject:(id)JSONContainerObject
|
||||
{
|
||||
if([NSJSONSerialization isValidJSONObject:JSONContainerObject])
|
||||
{
|
||||
NSData *JSONContainerData = [NSJSONSerialization dataWithJSONObject:JSONContainerObject options:0 error:nil];
|
||||
[self addJSONContainerWithData:JSONContainerData];
|
||||
}
|
||||
}
|
||||
|
||||
@end
|
||||
Reference in new issue
Block a user