Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > comp.lang.c > #384583
| From | Josef Möllers <josef@invalid.invalid> |
|---|---|
| Newsgroups | comp.lang.c |
| Subject | Re: Which newsgroup for json parsing? |
| Date | 2024-05-13 11:07 +0200 |
| Message-ID | <lae3idF17r5U1@mid.individual.net> (permalink) |
| References | <la1bjoF2anmU1@mid.individual.net> |
On 08.05.24 15:04, Josef Möllers wrote:
> Hi all,
>
> I am trying to parse a json string received through MQTT from a "Shelly
> Plug S", e.g.
> {"id":0, "source":"button", "output":true, "apower":0.0,
> "voltage":237.9, "current":0.000,
> "aenergy":{"total":0.000,"by_minute":[0.000,0.000,0.000],"minute_ts":1715172119},"temperature":{"tC":41.1, "tF":106.0}}
>
> I am trying to use libjson-glib but I can't figure out what to use as
> the first argument to json_gobject_from_data()!
> I am also looking at libjson-c but cannot find any examples that could
> guide me.
F'up to self, also to answer a few questions.
First of all, I have switched to libjson-c5 The code I'm using looks
like this:
/* Requires: libjson-c-dev */
# include <json.h>
# include <json_tokener.h>
:
static void
xlate(unsigned int plug, unsigned int sw, const char *payload, char *item)
{
struct json_tokener *tok;
struct json_object *obj1, *obj2;
tok = json_tokener_new();
obj1 = json_tokener_parse_ex(tok, payload, strlen(payload));
if (json_object_object_get_ex(obj1, item, &obj2) && obj2 != NULL)
{
json_bool b;
enum json_type t;
switch (t = json_object_get_type(obj2))
{
case json_type_boolean:
b = json_object_get_boolean(obj2);
:
Anton referred to the many sites that have documentation.
Yes, you're absolutely right. There are many sites that have
documentation, but I found that they were not easy to spot. It usually
depends upon my state of mind AND the correct queries to send to Aunt
Google. I am usually glad for some code examples that help me up the
first step and where I can build upon. I have myself written a few
magazine articles and a lot of internal documentation for my employers
on various programming and architectural topics that aim at people who
start working with new-ish hardware, eg microcontrollers to get at least
a square wave output on a pin or some "Hello, World!" on a UART.
Malcolm wrote:
> JSON parsing is the sort of thing you can easily do in C, but you
> really don't want to do yourself, becuase it is a lot of fiddly code
> to write, and everyone wants to solve exactly the same problem, which
> is to query text formatted as JSON, usually for fields whose names and
> types are known, but with facilities to list fields onthe fly.
Yes, that was exactly my idea when writing the program: why come up with
something new when there is existing code to build upon.
To answer jak's question:
This is code solely for myself to translate a json string I receive from
a Shelly Plug S into separate MQTT topics for the various items in the
string, most important "output", but also "voltage" and "apower".
Most of my handlers rely on the fact that a topic carries only a single
payload value, not a json object.
Thanks to all for helping!
Josef
Back to comp.lang.c | Previous | Next — Previous in thread | Next in thread | Find similar
Which newsgroup for json parsing? Josef Möllers <josef@invalid.invalid> - 2024-05-08 15:04 +0200
Re: Which newsgroup for json parsing? Anton Shepelev <anton.txt@g{oogle}mail.com> - 2024-05-08 16:21 +0300
Re: Which newsgroup for json parsing? Lawrence D'Oliveiro <ldo@nz.invalid> - 2024-05-23 03:03 +0000
Re: Which newsgroup for json parsing? Malcolm McLean <malcolm.arthur.mclean@gmail.com> - 2024-05-08 15:33 +0100
Re: Which newsgroup for json parsing? Anton Shepelev <anton.txt@g{oogle}mail.com> - 2024-05-08 19:53 +0300
Re: Which newsgroup for json parsing? jak <nospam@please.ty> - 2024-05-09 15:18 +0200
Re: Which newsgroup for json parsing? Josef Möllers <josef@invalid.invalid> - 2024-05-13 11:07 +0200
Re: Which newsgroup for json parsing? Mikko <mikko.levanto@iki.fi> - 2024-05-16 19:27 +0300
Re: Which newsgroup for json parsing? Josef Möllers <josef@invalid.invalid> - 2024-05-16 20:01 +0200
Re: Which newsgroup for json parsing? scott@slp53.sl.home (Scott Lurndal) - 2024-05-16 18:53 +0000
Re: Which newsgroup for json parsing? bart <bc@freeuk.com> - 2024-05-16 20:21 +0100
Re: Which newsgroup for json parsing? scott@slp53.sl.home (Scott Lurndal) - 2024-05-16 20:54 +0000
Re: Which newsgroup for json parsing? Malcolm McLean <malcolm.arthur.mclean@gmail.com> - 2024-05-17 05:24 +0100
Re: Which newsgroup for json parsing? bart <bc@freeuk.com> - 2024-05-17 15:13 +0100
Re: XML (was Re: Which newsgroup for json parsing?) Lawrence D'Oliveiro <ldo@nz.invalid> - 2024-05-25 02:53 +0000
Re: Which newsgroup for json parsing? jak <nospam@please.ty> - 2024-05-17 18:39 +0200
Re: Which newsgroup for json parsing? Malcolm McLean <malcolm.arthur.mclean@gmail.com> - 2024-05-17 18:07 +0100
Re: Which newsgroup for json parsing? Mikko <mikko.levanto@iki.fi> - 2024-05-18 16:21 +0300
Re: Which newsgroup for json parsing? Lawrence D'Oliveiro <ldo@nz.invalid> - 2024-05-23 03:40 +0000
Re: Which newsgroup for json parsing? scott@slp53.sl.home (Scott Lurndal) - 2024-05-23 17:14 +0000
Re: Which newsgroup for json parsing? Malcolm McLean <malcolm.arthur.mclean@gmail.com> - 2024-05-23 20:57 +0100
csiph-web