JSON Sort String - PullRequest
       11

JSON Sort String

0 голосов
/ 18 сентября 2011

основа.Привет, я использую json-framework.

Как получить отсортированную строку при использовании метода JSONRepresentation?Вот мой код:

NSMutableDictionary *tUserIDParam = [NSMutableDictionary dictionary];

[tUserIDParam setObject:@"UserID" forKey:@"@key"];
[tUserIDParam setObject:@"string" forKey:@"@type"];
[tUserIDParam setObject:@"mark" forKey:@"#text"];

NSMutableDictionary *tPasswordParam = [NSMutableDictionary dictionary];
[tPasswordParam setObject:@"Password" forKey:@"@key"];
[tPasswordParam setObject:@"string" forKey:@"@type"];
[tPasswordParam setObject:@"123456" forKey:@"#text"];

NSArray *tParams = [NSArray arrayWithObjects:tUserIDParam,tPasswordParam, nil];
NSDictionary *tParam = [NSDictionary dictionaryWithObject:tParams forKey:@"param"];

NSMutableDictionary *tRequests = [NSMutableDictionary dictionary];
[tRequests setObject:[NSNull null] forKey:@"key"];
[tRequests setObject:[NSNull null] forKey:@"basic"];
[tRequests setObject:tParam forKey:@"conditions"];

NSDictionary *tRequest = [NSDictionary dictionaryWithObject:tRequests forKey:@"request"];

NSString *tJSONStrFromDict = [tRequest JSONRepresentation];

Я хочу получить строку JSON, такую ​​как:

{"request": {"key": null, "basic":нуль, "условие": { "пары": [{ "@ ключ": "UserID", "@ тип": "строка", "# текст": "знак"}, { "@ ключ": "Пароль", "@ type": "string", "# text": "123456"}]}}}

Но я получил эту строку из кода выше:

{"request": {"basic": null, "condition": {"param": [{"# text": "mark", "@ key": "UserID", "@ type": "string"}, {"# text": "123456", "@ key": "Password", "@ type": "string"}]}, "key": null}}

Я пытаюсь использовать SBJSONWriter sortKeys свойство, оно не работает ...

Есть ли способ решить мою проблему?

Спасибо!

1 Ответ

1 голос
/ 18 сентября 2011

NSMutableDictionary Экземпляр не сохраняет порядок элементов, ни в алфавитном порядке, ни в порядке их вставки.Это не зависит от JSON.

Кроме того, модель данных JSON для объекта также не гарантирует порядок.Если вы хотите определенный порядок, вам придется использовать массивы JSON для упорядоченных деталей.

Кстати: эффект SBJSONWriter sortKeys состоит в выводе элементов (или свойств) объекта в алфавитном порядке, отсортированных по ключуназвание.Это то, что вы получаете.

...