30 lines
693 B
C++
30 lines
693 B
C++
#include <cstring>
|
|
#include <cstddef>
|
|
#include "json_utils.h"
|
|
|
|
bool json_get_string(const char *json, const char *key, char *out, size_t out_size) {
|
|
const char *k = strstr(json, key);
|
|
if (!k) return false;
|
|
|
|
const char *start = strchr(k, ':');
|
|
if (!start) return false;
|
|
|
|
start++;
|
|
|
|
// найти начало строки (первую кавычку)
|
|
while (*start && *start != '\"') start++;
|
|
if (!*start) return false;
|
|
|
|
start++; // после "
|
|
|
|
const char *end = strchr(start, '\"');
|
|
if (!end) return false;
|
|
|
|
size_t len = end - start;
|
|
if (len >= out_size) return false;
|
|
|
|
memcpy(out, start, len);
|
|
out[len] = '\0';
|
|
|
|
return true;
|
|
} |