Преобразование ответа HTTP (формат потока Java «Свойства») в NSDictionary - PullRequest
0 голосов
/ 17 мая 2010

Я работаю над приложением для iphone, которое содержит HTTP-запрос и ответ.

Формат ответа - это формат ключа / значения, совместимый с форматом потока Java «Свойства».

Я хочу сохранить ответ в NSDictionay. Не могли бы вы предложить мне какой-нибудь способ сделать это?

Спасибо.

sangee

Edit:

Спасибо парню за быстрые ответы !!!

Есть ли другие способы их хранения в NSSdictionay?

Я просто хочу сохранить название альбома и описание в массиве следующим образом:

mutablearray = [wrwr, dsf, my album];

не могли бы вы сообщить мне, если это возможно или нет?

Еще раз спасибо !!!

Это ответ, который я получил на мой HTTP-запрос ...

GR2PROTO
debug_album= debug_gallery_version= debug_user=admin debug_user_type=Gallery_User debug_user_already_logged_in= server_version=2.12 status=0 status_text=Login successful.

#GR2PROTO debug_album= debug_gallery_version= debug_user=admin debug_user_type=Gallery_User debug_user_already_logged_in=1

album.name.1=wrwr album.title.1=wrwr album.summary.1= album.parent.1=0 album.resize_size.1=640 album.thumb_size.1=100 album.perms.add.1=true album.perms.write.1=true album.perms.del_item.1=true album.perms.del_alb.1=true album.perms.create_sub.1=true album.info.extrafields.1=Description

album.name.2=dsf album.title.2=dsf album.summary.2= album.parent.2=0 album.resize_size.2=640 album.thumb_size.2=100 album.perms.add.2=true album.perms.write.2=true album.perms.del_item.2=true album.perms.del_alb.2=true album.perms.create_sub.2=true album.info.extrafields.2=Description

album.name.3=my album album.title.3=my album album.summary.3= album.parent.3=0 album.resize_size.3=640 album.thumb_size.3=100 album.perms.add.3=true album.perms.write.3=true album.perms.del_item.3=true album.perms.del_alb.3=true album.perms.create_sub.3=true album.info.extrafields.3=Description

Ответы [ 2 ]

2 голосов
/ 17 мая 2010

Если вы можете, я бы порекомендовал сериализовать данные в формате JSON (или XML, если необходимо) и проанализировать их, используя TouchJSON или подобный синтаксический анализатор. Если вы действительно не можете, то вам придется реализовать свой собственный анализатор - взгляните на NSScanner .

0 голосов
/ 17 мая 2010

Посмотрите на NSStream и Руководство по программированию потока для какао .

В то время, когда Java была полностью интегрирована в Какао, NSStream отображался на потоки Java. Это все еще может. IIRC, (это было давно) NSStream вернет правильно заполненный NSDictionary из потока Java.

Edit:

Похоже, что возвращаемый текст - это просто хеш, разделенный пробелом, который является Java-версией словаря. Он принимает форму ключ = значение пробел ключ = значение. Единственная сложность заключается в том, что некоторые хэши являются вложенными.

Первая строка, например, является вложенной:

debug_album{ 
    debug_gallery_version{
        debug_user=admin 
        debug_user_type=Gallery_User 
        debug_user_already_logged_in{
            server_version=2.12
            status=0 
            status_text=Login successful.
        }
    }
}

Вам нужен рекурсивный сканер, чтобы разобрать это. Шаблон «ключ = пространство» указывает на вложенный словарь.

...