# mco_lJSON_obj_add_str
RT

### Prototype

        MCO_RET mco_lJSON_obj_add_str(lews_JSON_context_h json_ctx, const char *key, const char *value);

### Arguments

`json_ctx`
Pointer to an initialized `lews_JSON_context_t` structure.
`key`
Null-terminated string specifying the name of the JSON field to be added.
`value`
Null-terminated string containing the value to be assigned to the field.

### Description

> This function adds a string key-value pair to the current JSON object (e.g., `"city": "New York"`).

> The function automatically handles JSON escaping of special characters in the `value` (such as quotes, backslashes, and control characters) according to RFC 8259.

> The function may trigger a buffer flush and send data over the network if there is insufficient space in the output buffer to write the formatted key-value pair.

> This function can only be called when the current context is inside a JSON object. Attempting to call it at the root level or inside an array will result in an error.

>         lews_JSON_context_t json_ctx;
>         ...
>         ret = mco_lJSON_obj_add_str(&json_ctx, "city", "New York");
>         if (ret != MCO_S_OK) {
>             printf("mco_lJSON_obj_add_str error %d\n", ret);
>         }
>         ...

### Return Codes

`MCO_S_OK`
String key-value pair successfully added to the current JSON object.
`MCO_E_NW_SENDERR`
An error occurred while flushing the output buffer due to insufficient space for the formatted key-value pair.
`MCO_E_LEWS_PARENT_IS_NOT_OBJECT`
The current parent context is not a JSON object (e.g., you are at the root level or inside an array).
Other error codes
May indicate internal errors (e.g., invalid arguments, null pointers).

### Files

Header file:
mcoewslite.h
Source file:
mcoewslite.c
Library:
mcoewslite.a