2014-09-15 4 views
0

Учитывая определение класса в файле заголовка, такие как:JSON строки в объект C++ из класса

class myClass { 

    private:   
    int data1; 
    int data2; 

    public: 
    int getData1(); 
    void setData1(int); 
    int getData2(); 
    void setData2(int); 
} 

и строку JSON, как:

"{ 
    "data1": 5, 
    "data2": 12 
}" 

есть ли способ для создания объекта Си ++ из myClass и установить элементы данных со значениями из строки JSON?

У меня есть много разных классов с множеством разных типов данных в качестве членов, поэтому что-то, что мне не нужно проходить, и код для каждого из них будет предпочтительнее.

+0

Я не совсем понимаю ваш вопрос. Я думаю, вы можете использовать парсер JSON (http://stackoverflow.com/questions/245973/whats-the-best-c-json-parser) и адаптировать данные к вашему классу. Это то, что люди всегда делают. Или вы можете написать собственный парсер, но это не стоит усилий. –

+0

Полагаю, вы спрашиваете, есть ли подобный Джексон парсер для C++, который будет конвертировать JSON прямо в C++, без необходимости писать какой-либо код. Я в этом сомневаюсь. Но на самом деле не так сложно написать собственный конструктор, который принимает объект карты JSON и заполняет объект. –

+0

попробуйте http://casablanca.codeplex.com/ – Jagannath

ответ

1

C++ не является динамическим языком, вы не можете использовать способ отражения в C#/Java/.. Однако вы можете использовать способ, предложенный Hot Licks, просто создать фабрику и проанализировать входную строку JSON, создать объект.

Смежные вопросы