iPhone + JSON + Отражение - PullRequest
       22

iPhone + JSON + Отражение

5 голосов
/ 13 апреля 2009

Я пишу приложение для iphone с JSON и пытаюсь превратить строки JSON в объекты (НЕ словари или массивы).

В Java, благодаря Reflection, я могу легко превратить JSON в экземпляры javabean, например:

import net.sf.json.JSONObject;
class MyBean {
    private String property;
    public String getProperty() { return property; }
    public void setProperty(String property) { this.property=property; }
}

// turn JSON string into a MyBean instance
String str = "{\"property\":\"some value\"}";  
JSONObject jsonObject = (JSONObject) JSONSerializer.toJSON( str );
JsonConfig jsonConfig = new JsonConfig();
jsonConfig.setRootClass( MyBean.class );
MyBean instance = (MyBean) JSONSerializer.toJava( jsonObject, jsonConfig );

Мне было интересно, возможно ли это в объективе-c. В настоящее время я использую эту инфраструктуру JSON, но готов переключиться при необходимости.

Спасибо

Ответы [ 4 ]

4 голосов
/ 13 апреля 2009

Существует проект с открытым исходным кодом, который называется targetresource и targetsupport . Они являются частичными реализациями Objective-C того, что называется ActiveResource и ActiveSupport в мире разработки Ruby и RESTful. Часть того, что делает targetsupport, это сериализация и десериализация объекта JSON (а также XML). Если вы не хотите использовать полную инфраструктуру как есть, вы можете взглянуть на исходный код для targetsupport и там вы увидите их реализацию сериализации в / из NSObject. Конкретный код, который вы хотите посмотреть, перечислены ниже: (в основном реализован как категория для типов NSObject, NSArray и NSDictionary) http://github.com/yfactorial/objectivesupport/tree/d08b5be6c0f7a2b0196b6ec17e4441bb146c4e23/Classes/lib/Serialization/JSON

Кстати, похоже, они используют форк того же JSON framework , который вы используете.

0 голосов
/ 29 декабря 2011

Возможно, вы захотите проверить мою реализацию для сериализации и десериализации JSON для объектов NSOb и наоборот. - https://github.com/mahadevans87/OBJC_JSONSerializer

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

На тот случай, если кто-нибудь еще придет сюда, чтобы найти ответ на этот вопрос, есть еще один проект, который имеет именно то, что вы ищете: JSON для iPhone и ничего больше.

Посмотрите здесь

0 голосов
/ 13 апреля 2009

Может быть, посмотрите на Objective-C Runtime Reference может помочь вам!

Существуют некоторые функции (например, class_createInstance и object_setInstanceVariable), которые могут вам помочь.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...