From 2fa360da43c02a2c90f4c27189055df97cde7ae6 Mon Sep 17 00:00:00 2001 From: "Serge A. Zaitsev" Date: Thu, 29 Nov 2018 21:07:19 +0100 Subject: [PATCH] update readme --- README.md | 34 ++++++++++++++++++++++++---------- 1 file changed, 24 insertions(+), 10 deletions(-) diff --git a/README.md b/README.md index 45436b3..0f6ed27 100644 --- a/README.md +++ b/README.md @@ -76,21 +76,35 @@ object hierarchy. This approach provides enough information for parsing any JSON data and makes it possible to use zero-copy techniques. -Install -------- +Usage +----- -To clone the repository you should have Git installed. Just run: +Download `jsmn.h`, include it, done. - $ git clone https://github.com/zserge/jsmn +``` +#include "jsmn.h" -Repository layout is simple: jsmn.c and jsmn.h are library files, tests are in -the jsmn\_test.c, you will also find README, LICENSE and Makefile files inside. +... +jsmn_parser p; +jsmntok_t t[128]; /* We expect no more than 128 JSON tokens */ -To build the library, run `make`. It is also recommended to run `make test`. -Let me know, if some tests fail. +jsmn_init(&p); +r = jsmn_parse(&p, s, strlen(s), t, 128); +``` -If build was successful, you should get a `libjsmn.a` library. -The header file you should include is called `"jsmn.h"`. +Since jsmn is a single-header, header-only library, for more complex use cases +you might need to define additional macros. `#define JSMN_STATIC` hides all +jsmn API symbols by making them static. Also, if you want to include `jsmn.h` +from multiple C files, to avoid duplication of symbols you may define `JSMN_HEADER` macro. + +``` +/* In every .c file that uses jsmn include only declarations: */ +#define JSMN_HEADER +#include "jsmn.h" + +/* Additionally, create one jsmn.c file for jsmn implementation: */ +#include "jsmn.h" +``` API ---