2012-10-10 8 views
5

में सी ++ में जेएसओएन के साथ काम किया है मैंने पहले ही विजुअल स्टूडियो विकास पर्यावरण में सी ++ के साथ काम किया है। अब मुझे JSON का उपयोग करके डेटा प्राप्त करने और भेजने के लिए कहा गया है।क्या किसी ने विजुअल स्टूडियो 2010

मैं इंटरनेट खोज की है लेकिन JSON के किसी भी उदाहरण नहीं मिल सकता है दृश्य स्टूडियो में सी द्वारा इस्तेमाल किया जा रहा ++। अगर किसी ने विजुअल स्टूडियो 2010 में सी ++ में जेएसओएन के साथ काम किया है तो कृपया लिंक पर जाएं।

+0

इसे आजमाएं: [Json11] (https://github.com/dropbox/json11) या [PicoJSON] (https://github.com/kazuho/picojson)। कोई बूस्ट नहीं – Sergo

उत्तर

3

यदि आप boost :: spirit स्थापित करेंगे तो आप इस lib JSON Spirit का उपयोग कर सकते हैं। एक आकर्षण की तरह वीएस के साथ काम करता है।

अद्यतन json आत्मा की निर्देशिका शामिल और

#include <json_spirit/json_spirit.h> 
#include <json_spirit/json_spirit_reader_template.h> 
#include <json_spirit/json_spirit_writer_template.h> 
+0

boost :: spirit को कैसे इंस्टॉल करें, क्या आप कृपया मार्गदर्शन कर सकते हैं? – Dany

+0

बस इसे यहां से डाउनलोड करें http://boost-spirit.com/home/ और हेडर –

+2

शामिल हैं, मैंने लिंक JSON आत्मा पर दिए गए प्रोजेक्ट को डाउनलोड किया है। इसमें पांच प्रोजेक्ट शामिल हैं, क्या आप बस मुझे बता सकते हैं कि कौन सा JSON ऑब्जेक्ट लेता है तर्क के रूप में कि मैं सी # डीएलएल की अपनी विधि में से एक से इसे पार्स करता हूं और इसे एक फ़ाइल में संग्रहीत करता हूं। – Dany

1

JsonCpp एक सी ++ जेएसओएन पार्सर है जो वीएस में उनके README के अनुसार बनाता है।

+0

मैंने काम नहीं किया – Dany

+0

यूनिकोड का सही ढंग से समर्थन नहीं करता – daisy

1

Apache Thrift का उपयोग JSON समर्थन करता है। यह एक अच्छा विकल्प है, क्योंकि जेएसओएन के अतिरिक्त, आपको परिवहन तंत्र (टीसीपी सॉकेट, आदि) और वैकल्पिक रूप से बहु-थ्रेडेड वातावरण में भी मिलता है।

Here आप विंडोज़ के लिए JSON के बारे में जानकारी पा सकते हैं।

बचत बहु मंच है, तो यह बनाम साथ बहुत अच्छी तरह से काम करना चाहिए

0

आप rapidjson कोशिश कर सकते हैं।

यह न्यूनतम, तेजी से, मूल रूप से वीसी -2008/2010 का समर्थन करता है, न्यूनतम निर्भरता के साथ (उदा। कोई बूस्ट, एसटीएल भी नहीं)।

यह पार्स और SAX या डोम शैली एपीआई का उपयोग कर JSON उत्पन्न कर सकते हैं।

0

Json11 - सी ++ 11 के लिए एक छोटी JSON लाइब्रेरी है, जो JSON पार्सिंग और क्रमबद्धता प्रदान करता है।

लाइब्रेरी द्वारा प्रदान की गई मूल वस्तु json11 :: Json है। एक जेसन ऑब्जेक्ट किसी भी JSON मान का प्रतिनिधित्व करता है: शून्य, बूल, संख्या (int या double), स्ट्रिंग (std :: string), सरणी (std :: vector), या ऑब्जेक्ट (std :: map)।

जेसन ऑब्जेक्ट मूल्यों की तरह कार्य करता है। उन्हें समानता या आदेश की तुलना में आवंटित, प्रतिलिपि, स्थानांतरित किया जा सकता है, और इसी तरह। एक जेसन ऑब्जेक्ट के रूप में एक std :: स्ट्रिंग को पार्स करने के लिए जेसन :: पर्स (स्थिर) को जेसन :: पर्स (स्थिर) को क्रमबद्ध करने के लिए जेसन :: डंप भी सहायक तरीके हैं।

उदाहरण: -

 const string simple_test = 
      R"({"k1":"v1", "k2":42, "k3":["a",123,true,false,null]})"; 
     string err; 
     auto json = Json::parse(simple_test, err); 
     std::cout << "k1: " << json["k1"].string_value() << "\n"; 

PicoJSON एक छोटे से JSON पार्सर/सी के लिए serializer ++ निम्नलिखित गुणों के साथ है:

  • हैडर फ़ाइल केवल
  • कोई बाहरी निर्भरता (केवल का उपयोग करता है मानक सी ++ पुस्तकालय)
  • एसटीएल-फ्रींडली (सरणी repr हैं std :: वेक्टर का उपयोग करके esented, वस्तुओं एसटीडी हैं :: नक्शा)
  • दोनों पुल इंटरफेस और स्ट्रीमिंग प्रदान करता है (घटना पर आधारित) इंटरफ़ेस

उदाहरण:

 std::string json1 = R"({ "k1":"v1", "k2" : 42, "k3" : ["a",123,true,false,null] })"; 
     picojson::value v; 
     std::string err1 = picojson::parse(v, json1); 
     const picojson::object& o = v.get<picojson::object>(); 
     for (picojson::object::const_iterator i = o.begin(); i != o.end(); ++i) { 
      std::cout << i->first << " " << i->second << std::endl; 
     } 

दोनों आसानी से दृश्य में इस्तेमाल किया मानक पुस्तकालयों के साथ स्टूडियो (कोई अतिरिक्त निर्भरता नहीं)।

संबंधित मुद्दे