/**
 * @file json_utils.h
 * @brief 轻量 JSON 字符串工具（无需完整解析器）
 */

#ifndef __JSON_UTILS_H__
#define __JSON_UTILS_H__

#ifdef __cplusplus
extern "C" {
#endif

/**
 * @brief JSON 字符串反转义
 *
 * 将 JSON 转义字符串还原为原始内容:
 *   \" -> "    \\ -> \    \n -> 换行    \t -> 制表符
 * 如果输入首尾有引号则自动剥离。
 *
 * @param src       输入（转义字符串）
 * @param src_len   输入长度
 * @param dst       输出缓冲区
 * @param dst_size  输出缓冲区大小
 * @return 反转义后的长度, -1 表示失败
 */
int json_unescape(const char *src, int src_len, char *dst, int dst_size);

/**
 * @brief 在原始 JSON 字符串中定位某个 key 对应的字符串值（含引号）
 *
 * 返回值起始位置（开引号）和长度（含首尾引号），不修改原始缓冲区。
 * 仅处理字符串值类型。
 *
 * @param json      原始 JSON 字符串
 * @param json_len  长度
 * @param key       要查找的 key
 * @param out_start 输出: 值开引号位置
 * @param out_len   输出: 值长度（含首尾引号）
 * @return 0 成功, -1 未找到
 */
int json_find_string_value(const char *json, int json_len,
                           const char *key,
                           const char **out_start, int *out_len);

#ifdef __cplusplus
}
#endif

#endif /* __JSON_UTILS_H__ */
