Sign in to follow this  
kubalie

Need a C++ JSON something

Recommended Posts

Hi,

 

I am in need of a JSON library (I am not sure if thats what it is called) that I can easily bring into my visual studio 2012 project. I tried jansson but it had a lot of errors from some sort of inline issue to not being able to find the functions (linking errors). Not sure if I might of not configured myself correctly but I cant find any documentation for how to do it on windows with vs.

Anyways any help?

 

Thanks.

Share this post


Link to post
Share on other sites

I've used jsoncpp in the past after looking at the available options.

 

The amalgamated version which allows you to include it as a single header file was slightly broken and needed a few minor changes to get it to compile. Apart from that though, it was straightforward and easy to use.

Share this post


Link to post
Share on other sites

Yea so like I mentioned 

 

You can also check out Jansson

 

+1

 

Jansson is great. Very easy to use and reasonably quick.

So like I mentioned I did try Jansson because I read that its a good json util but I was unable to get it to work in my project. I built a lib and put it in my project and that failed I also took the actual source files and imported them into my project and that also failed. I am not too clear on what I need to do to get Jansson working with visual studio on windows. thanks

Share this post


Link to post
Share on other sites

OK so after some work I finally got jansson to work with visual studio. Not sure why but for some reason visual studio did not like this #define JSON_INLINE inline inside  jansson.h. Not sure why. Anyways so now I am trying to see if this will parse any json data and I have a test of json data but it fails saying "error: root is not an array". I have doubled check to make sure that it in face is a legit json (jsonlint).

 

char *text = 0;
	
	json_t *root = 0;
	json_error_t error;

	text = "{\"glossary\": {\"title\": \"example glossary\",\"GlossDiv\": {\"title\": \"S\",\"GlossList\": {\"GlossEntry\": {\"ID\": \"SGML\",\"SortAs\": \"SGML\",\"GlossTerm\": \"Standard Generalized Markup Language\",\"Acronym\": \"SGML\",\"Abbrev\": \"ISO 8879:1986\",\"GlossDef\": {\"para\": \"A meta-markup language, used to create markup languages such as DocBook.\",\"GlossSeeAlso\": [\"GML\", \"XML\"] },\"GlossSee\": \"markup\"}}}}}";
		
	if(!text)
		return 1;

	root = json_loads(text, 0, &error);

	if(!root)
	{
		fprintf(stderr, "error: on line %d: %s\n", error.line, error.text);
	}

	if(!json_is_array(root))
	{
		fprintf(stderr, "error: root is not an array\n");
		json_decref(root);
	}

 

Thanks again for all the replies!!

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

Sign in to follow this