Разобрать строку запроса в структурированный NSDictionary - PullRequest
2 голосов
/ 26 октября 2009

У меня есть строка запроса: a=1&b=2&c[1]=3&c[2]=4 и т. Д. *

Я хочу NSDictionary, где a => 1, b => 2, c => [3,4]. Обратите внимание, что значение для c является массивом. Он также должен иметь возможность обрабатывать что-то вроде c[1][2]=5 для создания массива массивов c => [[5]].

Конечно, я могу сделать это сам, разделив & и =, но как насчет других случаев, таких как массивы и массивы массивов. Я хочу структурированный NSDictionary из запроса POST запроса String и не хочу переписывать колесо, если оно уже существует.

Есть ли какой-либо класс / метод через Apple или стороннюю организацию, который будет анализировать строку запроса в структурированном NSDictionary?

Ответы [ 2 ]

6 голосов
/ 26 октября 2009

Google Toolbox для Mac содержит категорию GTMNSDictionaryURLArgumentsAdditions для NSDictionary, которая может делать то, что вы хотите.

Если у вас есть контроль над строкой запроса (на стороне клиента), вы можете отправить закодированный список, который может быть декодирован непосредственно в NSDictionary.

1 голос
/ 27 октября 2009

В этом случае это может быть излишним, но ParseKit - это набор инструментов для анализа / разбора открытого кода, написанный на Cocoa для приложений Какао:

http://parsekit.com

это может вас заинтересовать.

ParseKit четко разделен на два компонента: токенизатор и высокоуровневый набор инструментов для разбора, построенный поверх него. Вы можете использовать один или оба из этих компонентов, чтобы помочь с такой задачей. Но опять же, ParseKit может быть излишним для этой относительно простой задачи анализа.

...