2011-04-08 4 views
3

(Windows) C++에서 Variant를 Java 스크립트 개체 표기법으로 변환하려면 어떻게해야합니까?C++ Variant를 JSON으로 변환하는 방법은 무엇입니까?

배열 (float), 문자열 또는 부울 데이터를 포함 할 수있는 Variant를 반환하는 하드웨어가 있습니다. 변형 된 모든 내용은 JSON으로 쉽게 변환되어야하지만 JSON 라이브러리를 사용하면이 변형을 즉시 사용할 수 있습니다. 또는 ... 거의 모든 것을 먹고 적절한 JSON을 반환하는 JSON 라이브러리 (C++)가 있습니까?

현재 내 JSON 변환기 (임의의 사이트에서 다운로드 한 소스)가 Json (& 변형)을 이해하지 못합니다.

switch (variant.type): 
    type1: 
     return json.dump(variant.value) 
    default: 
     return json(stringify(variant.value)) 

여기에 주요 포인트는 최소한의 노력과 테스트 작업 솔루션을 얻을 수 있습니다 :

는 내가 찾던 (의사)입니다. msdn.microsoft.com/en-us/library/ms221627(VS.80).aspx

BR,

주하

+0

Windows의 'VARIANT' 또는'boost :: variant <>'에 대해 묻고 있습니까? – ildjarn

+0

Windows 변형 : http://msdn.microsoft.com/en-us/library/ms221627(VS.80).aspx – Juha

답변

1

이 변환을 수동으로 작성해야한다고 생각합니다. VARIANT를 json 또는 jsoncpp Value 클래스로 변환 할 수있는 것은 무엇인지 알지 못합니다. 그래서 switch를 생성하여 VARTYPE vt;의 VARIANT 요소를 만들고이를 기반으로 jsoncpp 값으로 변환하십시오. 아마도 모든 유형의 VARIANT 유형을 변환 할 필요가 없으므로 일부 기본 유형 (VT_I4, VT_UI4, VT_BSTR, VT_BOOL)으로 시작하고 나중에 필요한 유형을 작성하십시오.

0

가 : 변형으로

편집 나는 윈도우의 변형을 의미 JsonCpp을 확인 했습니까? 과거에는 운이 좋았습니다.

FastWriter class을 사용하여 변형 값에서 직접 JSON 문자열을 출력 할 수 있습니다.

+0

흠, 7, 64 비트, Visual Studio 2010 우승을 위해 jsoncpp을 설치하는 데 약간의 문제가 있습니다. .. 지침과 소스 코드를 읽는 것만으로도 jsoncpp "value"-object와 JSON 문자열로 입력을 변환해야한다는 느낌이 들었다. 이제 내 문제는 "VARIANT를 jsoncpp-value로 변환하는 방법"으로 바뀝니다. 즉, 실제 변환은 자동으로 수행되지 않습니다. 나는 여전히 이것이 배열이고 이것이 부울이라고 수동으로 말해야한다. – Juha

관련 문제