Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/70.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C 需要使用json的帮助吗_C_Arrays_Json_String - Fatal编程技术网

C 需要使用json的帮助吗

C 需要使用json的帮助吗,c,arrays,json,string,C,Arrays,Json,String,我在jansson中处理字符串和数组时遇到困难 unsigned char number[10]; // contains a hex array using upto 6 bytes 现在我做到了 json_object_set_new(foo,"bar",json_string(number)); 这将导致一个空的json对象 我也试过这个 number[6]='\0'; 接 json_object_set_new(foo,"bar",json_string(number)); 但结

我在jansson中处理字符串和数组时遇到困难

unsigned char number[10]; // contains a hex array using upto 6 bytes
现在我做到了

json_object_set_new(foo,"bar",json_string(number));
这将导致一个空的json对象

我也试过这个

number[6]='\0';

json_object_set_new(foo,"bar",json_string(number));
但结果是一样的。 我不明白为什么。

示例

#include <stdio.h>
#include <stdlib.h>
#include <jansson.h>

int main(void){
    unsigned char number[10] = "123456";
    char *result;
    json_t *root = json_object();
    json_t *foo = json_object();
    json_object_set(root, "foo", foo);
    json_object_set_new(foo,"bar",json_string(number));

    result = json_dumps(root, 0);
    printf("%s\n", result);//{"foo": {"bar": "123456"}}
    free(result);
    return 0;
}
#包括
#包括
#包括
内部主(空){
无符号字符数[10]=“123456”;
字符*结果;
json_t*root=json_object();
json_t*foo=json_object();
json_对象_集(根,“foo”,foo);
json_object_set_new(foo,“bar”,json_字符串(数字));
结果=json_转储(根,0);
printf(“%s\n”,result);//{“foo”:{“bar”:“123456”}
自由(结果);
返回0;
}

检查您调用的任何函数的返回值。json\u字符串失败,因此返回null。因此,查看文档,
json\u字符串的参数必须是有效的UTF-8字符串。它可能不在你的程序中。