Skip to content

sweeterthancandy/json_parser

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

31 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

This is a json parser written in C++.

    #include "JsonObject.h"


    int main(){
            using namespace json_parser;
            JsonObject obj;

            // parse
            obj.Parse(R"( { "primes":[2,5,7,11,13] } )");
            
            // empty aggregates
            obj["empty_array"] = Array;
            obj["empty_map"] = Map;

            // assign an array
            obj["nice_numbers"] = Array("two", 3, 4.4);

            // assign a map
            obj["next"] = Map(1,"one")
                             ("two",2);


            

            // we can use an integer as a key as well
            obj[23]  = "twentry three";

            // iterator over the intergers
            for( auto p : obj["primes"] ){
                    std::cout << p.AsInteger() << "\n";
            }
            // or use as an zero index array
            auto const& primes = obj["primes"];
            for(size_t i = 0; i!= primes.size(); ++i){
                    std::cout << primes[0] << "\n";
            }

            for( auto p : obj["nice_numbers"] ){
                    switch(p.GetType()){
                    case Type_Integer:
                            std::cout << p.AsInteger() << "\n";
                            break;
                    case Type_String:
                            std::cout << p.AsString() << "\n";
                            break;
                    case Type_Float:
                            std::cout << p.AsFloat() << "\n";
                            break;
                    default:
                            break;
                    }
            }

            // iteratate over a map
            using MI = JsonObject::const_iterator;
            for(MI iter( obj["next"].begin() ), end( obj["next"].end());iter!=end;++iter){
                    std::cout << iter.key() << " => " << iter.value() << "\n";
            }


            // display pretty
            obj.Display();

            // print to a single line
            std::string s = obj.ToString();

            JsonObject other;
            // reparse
            other.Parse(s);

    }

About

my own implementation of a json parser

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published