這麼長的故事短我有一個android應用程序,我用cocos2dx來開發它。我正在努力的一個組件是將我的Facebook朋友帶入我的遊戲。我這樣做的方式是在本機(Java)我安裝我的Facebook的SDK。我成功登錄並且毫無問題地拉下我的朋友列表。我的問題是,我需要將這些數據轉發到C++端,以便我可以訪問數據並將其帶入標籤等。用Jannson JSON閱讀器閱讀Facebook響應
這裏我猜想一些結構是如何發生的: Java本機 - 啓動活動,登錄Facebook,結識朋友 - > STRING DATA JNI TO C++ - > CPP用Jannson解析JSON數據。
我的問題是,如果我有這樣一個簡單的數據:
[
{
"pic_square": "https://www.facebook.com/blah",
"uid": 4654546445,
"name": "somename"
}
]
我可以分析,沒有問題,但在現實中有什麼Facebook的迴應是這樣的:
{
Response: responseCode: 200,
graphObject: GraphObject{
graphObjectClass=GraphObject,
state={
"data": [
{
"pic_square": "https://www.facebook.com/blah",
"uid": 4654546445,
"name": "somename"
}
]
}
}
}
由於Jansson未能說明它不是數組(確切的錯誤是「錯誤:root不是數組」)。 不知道如何處理這個。我應該以某種方式解析出「數據」之後的東西:然後找出正確地停止或有更好的方法。
謝謝!
你有可能從[Jannson教程](https://github.com/akheron/jansson/blob/master/doc/tutorial.rst)複製粘貼了一些代碼?該示例適用於Json數組(與第一個片段一樣;用方括號表示)。然而,Facebook的迴應只是一個單一的對象。它在層次結構的某個點包含一個數組('data'),但您需要首先解析頂層的東西才能到達那裏。基本上你現在試圖將一個單一的對象映射到一個數組上 - 這也是錯誤所在。 – 2013-03-24 18:18:40
是的,我從Jannson教程中取出代碼,然後修改它來提取整數。該教程只抓取字符串。所以我想我需要弄清楚如何在「data:[...]」之後抓取這些東西,並確保我停在正確的支架上。反正謝謝你的回覆! – kub 2013-03-24 18:33:15
不是Facebook的專家,但對於特定的調用/響應將字符串分隔符設置爲等於「]」和「[」來提取數據是安全的。這太危險了嗎? – kub 2013-03-24 22:50:46