2012-07-09 73 views
0

我一直在尋找相當長的一段時間,以瞭解如何使用C++ Builder XE2 TJSONObject來讀取嵌套的JSON。C++ XE2 - 如何閱讀嵌套的JSON?

Delphi中有幾個例子,但它們使用TJSONValue對象,但在C++版本中,此類具有純虛函數並且無法創建。

一些示例JSON:

{ 
    "totalHits": 4170, 
    "totalCount": 4170, 
    "startIndex": 0, 
    "adverts": [ 
    { 
     "Id": "14380005", 
     "companyInfo": { 
     "companyName": "Clarion Hotel Sign", 
     "orgNumber": "5564660107", 
     "companyText": "hotell" 
     }, 
     "address": { 
     "streetName": "Street race 2", 
     "postCode": "101 26", 
     "postArea": "MY AREA", 
     "postBox": "Box 310" 
     }, 
     "homepage": "www.mypage.net" 
    } 
    ] 
} 

整個JSON存儲在JSON對象,相信我,它在那裏:)

TJSONObject *JSON = new TJSONObject; 

我沒有問題,得到了totalHits值和totalCount,但我怎麼得到的值?!?

感謝

回答

1

我發佈這個遲來的答案別人誰符合未來同樣的問題....

TJSONArray* jArray = (TJSONArray*)JSON->Get("adverts")->JsonValue; 
TJSONObject* jCompanyInfo = (TJSONObject*)((TJSONObject*)jArray->Get(0)) 
     ->Get("companyInfo")->JsonValue); 
String companyName = jCompanyInfo->Get("companyName")->JsonValue->Value()); 
+0

我創建了一個「文檔」與關鍵字=值StringList的層次。以這種方式搜索和閱讀比較容易。我接受你的答案,因爲我認爲這是正確的方式來做到這一點:) – 2012-08-20 16:23:37