2015-10-04 18 views
0

我對C++相當陌生,在使用json文件時遇到了麻煩。我正在使用Xcode(版本6.4)。例如,我的JSON文件格式類似於這樣:C++中的json文件的簡單輸出?

[ 
{ 
    "assignmentName": "Physics 1", 
    "dueDate": "2015-10-15T20:11:20Z", 
    "priority": "High", 
}, 
{ 
    "assignmentName": "Research Paper", 
    "dueDate": "2015-11-18T00:40:25Z", 
    "priority": "Low" 
} 
] 

的什麼,我試圖做一個例子是編寫代碼,會在我的JSON文件信息。如果我想打印2015年11月11日到期的作業名稱,我希望我的輸出成爲「研究論文」。

我一直對這個在過去的幾天,只要保持卡住。我已經檢出了http://www.json.org,並查看了C++下列出的json解析器。我試圖與他們合作,但無論是(1)他們的代碼過於複雜,我有工作(我不明白的語法,甚至是閱讀他們的榜樣之後)或(2)我問用到其他庫。看C++列表下面每一個解析器後,JSON(https://github.com/nlohmann/json)似乎是爲我用最簡單的解析器,但我還是覺得很失落。

我在尋找簡單的東西。我想要做的就是輸出我在我的json文件中調用的任何變量的值(調用「assignmentName」,print「Physics 1」))。

從與朋友交談並模糊地瞭解解析器,似乎爲了讓我在我的json文件中獲取某些變量的值,我需要將我的json文件的內容實際粘貼到我的Xcode中項目。這是真的?

如果任何人都可以直接我一個更好的解析器,一個更好的方法,或某種語法字典這些分析器,這將不勝感激!

+0

一個很好的起點,以JSON工作在C/C++ https://linuxprograms.wordpress.com/2010/05/20/ json-c-libjson-tutorial/ –

+0

試試jsoncpp。 http://jsoncpp.sourceforge.net/old.html非常容易使用。 – Adi

回答

1

使用JSON庫你提到的有關代碼應該是

#include "json.hpp" 
#include <iostream> 

using json = nlohmann::json; 
// ... In some method, e.g. main... 
std::ifstream file = {"yourfilename.json"}; 
json obj; 
file >> obj; 
std::cout << obj[0]["dueDate"]; // Debug output 
// End of code 
+0

謝謝!我嘗試了這段代碼,並不斷收到錯誤,但我意識到我必須將json文件添加到我的工作目錄中。這樣做之後,它確實如我所願。此代碼在哪裏找到?我在解析器的自述文件中沒有看到它。 (現在我試圖弄清楚「如果assignmentName是Research Paper,然後打印dueDate」) – melaleucaaa