JSONCPP के पास एक लेखक है, लेकिन ऐसा लगता है कि यह पार्सर से जानकारी प्राप्त करता है और फिर इसे स्ट्रिंग या स्ट्रीम में आउटपुट करता है। मैं इसे कैसे बदल सकता हूं या नई ऑब्जेक्ट्स, सरणी, मान, तार, et cetera बना सकता हूं और उन्हें फ़ाइल में लिख सकता हूं?JSONCPP फ़ाइलों को लिखना
उत्तर
AFAICT, आप जेसन :: वैल्यू के प्रकार बनाते हैं, जो सभी JSON डेटा-प्रकारों को पूरा करता है, और परिणाम को जेसन :: राइटर (इसके व्युत्पन्न प्रकारों में से एक, विशिष्ट होने के लिए) पास करता है, या बस एक धारा के लिए।
उदा .: एक फाइल करने के लिए तीन पूर्णांकों की एक सरणी लिखने के लिए:
Json::Value vec(Json::arrayValue);
vec.append(Json::Value(1));
vec.append(Json::Value(2));
vec.append(Json::Value(3));
std::cout << vec;
सबसे पहले, आप वांछित JSON::Value
बनाना होगा। आपको सभी रचनाकारों को देखना चाहिए (first)। आवश्यक पदानुक्रम बनाने के लिए, append
और ऑपरेटर [] अधिभार देखें; वस्तुओं के लिए दोनों सरणी indices और string keys दोनों के लिए ओवरलोड हैं।
JSON मान वापस लिखने का एक तरीका StyledStreamWriter::write
और ofstream
का उपयोग कर रहा है।
इसे लिखने के लिए cegprakash का उत्तर देखें।
हाँ मैंने मार्सेलो के जवाब को पढ़ने के बाद इस बारे में सोचा। यह काम करता हैं। – Yelnats
@ येलनेट्स तो आप इसे उचित उत्तर के रूप में क्यों चिह्नित नहीं करते? –
'स्टाइलस्ट्रीमवाइटर' को बहिष्कृत किया गया है। यदि आपको अनुकूलन की आवश्यकता है, तो ['StreamWriterBuilder'] (http://open-source-parsers.github.io/jsoncpp-docs/doxygen/class_json_1_1_stream_writer_builder.html) का उपयोग करें। या बस यहां अन्य उत्तरों का पालन करें। – cdunn2001
#include<json/writer.h>
कोड:
Json::Value event;
Json::Value vec(Json::arrayValue);
vec.append(Json::Value(1));
vec.append(Json::Value(2));
vec.append(Json::Value(3));
event["competitors"]["home"]["name"] = "Liverpool";
event["competitors"]["away"]["code"] = 89223;
event["competitors"]["away"]["name"] = "Aston Villa";
event["competitors"]["away"]["code"]=vec;
std::cout << event << std::endl;
आउटपुट:
{
"competitors" :
{
"away" :
{
"code" : [ 1, 2, 3 ],
"name" : "Aston Villa"
},
"home" :
{
"name" : "Liverpool"
}
}
}
यह वास्तव में अच्छा लग रहा है। .append विधि के साथ int की बजाय कक्षाओं को जोड़ने के बारे में क्या? – malber
#include <json.h>
#include <iostream>
#include <fstream>
void main()
{
std::ofstream file_id;
op_file_id.open("file.txt");
Json::Value value_obj;
//populate 'value_obj' with the objects, arrays etc.
Json::StyledWriter styledWriter;
file_id << styledWriter.write(value_obj);
file_id.close();
}
यह समझना आसान है कि क्या आप अपना उत्तर समझाते हैं और न केवल कोड पोस्ट करते हैं। – SuperBiasedMan
- 1. JSONCPP पढ़ने नहीं फ़ाइलों को सही ढंग
- 2. JSONCPP विजुअल स्टूडियो 2010
- 3. jsoncpp स्वरूपण समस्या
- 4. मेरी अस्थायी फ़ाइलों को कहां लिखना है?
- 5. अस्थायी स्थानों पर फ़ाइलों को लिखना
- 6. fopen/fopen_s और फ़ाइलों को लिखना
- 7. पायथन: एक्सेल 2007+ फ़ाइलों (.xlsx फ़ाइलों) को लिखना
- 8. getMemberNames() से JsonCPP त्रुटि को कैसे ठीक करें?
- 9. TortoiseSVN को प्लगइन लिखना
- 10. nodejs में फ़ाइलों (विधियों सहित) में जेएस ऑब्जेक्ट्स लिखना?
- 11. दो तुलनात्मक कार्यों को लिखना?
- 12. पाइथन 3 पाइप को लिखना
- 13. एकाधिक फ़ाइल-डिस्क्रिप्टरों को लिखना
- 14. HttpResponse को फ़ाइल लिखना, ब्राउज़र
- 15. सी # इवेंट व्यूअर को लिखना
- 16. सी ++ लाइब्रेरी में अधिक सुन्दर त्रुटि हैंडलिंग - jsoncpp
- 17. Excel के बिना किसी सर्वर पर रूबी का उपयोग करके एक्सेल फ़ाइलों को पढ़ना और लिखना
- 18. वाइल्डकार्ड के साथ फ़ाइलों को हटाने के लिए बैच फ़ाइल लिखना
- 19. लिनक्स कर्नेल मॉड्यूल के भीतर फ़ाइलों को कैसे पढ़/लिखना है?
- 20. फ़ाइलों को
- 21. फ़ाइलों को
- 22. regexp लिखना?
- 23. अपेक्षित असफलताओं को कैसे लिखना है?
- 24. StreamWriter के साथ मेमोरीस्ट्रीम को लिखना खाली
- 25. एमुलेटर में सिस्टम/फ्रेमवर्क को लिखना
- 26. ऑब्जेक्ट सदस्यों को पार्सल पर लिखना
- 27. फ़ाइल को अतुल्यकालिक रूप से लिखना
- 28. उपयोगकर्ता दस्तावेज़ फ़ोल्डर को लिखना C++
- 29. सीधे std :: स्ट्रिंग आंतरिक बफर को लिखना
- 30. डीवीडी/सीडी को पढ़ने और लिखना - जावा
लेकिन मैं इसे .json फाइल करने के लिए लिखना चाहते हैं। – Yelnats
फिर 'cout' के बजाय' 'स्ट्रीम' का उपयोग करें। –
येल्नाट्स, फिर इसे std :: cout की बजाय फ़ाइल में पाइप करें। – TimZaman