json字符串,使用json格式做解析
#include <json-c/json.h>
#include <stdio.h>
int main(int argc, char * argv[]) {
char json_str[2048] = "[{\"aaa\":\"aa\", \"iii\":111}, {\"aaa\":\"aaaa\", \"iii\":222}, {\"aaa\":\"aaaaaa\", \"iii\":333}]" ;
struct json_object* json_obj = NULL ;
struct json_object* json_one = NULL ;
struct json_object* json_value = NULL ;
const char * str_value = NULL ;
int int_value = 0 ;
// 字符串转 json 对象
json_obj = json_tokener_parse(json_str) ;
if (json_obj == NULL ) {
printf("json_str is not json string, parse error") ;
return -1 ;
}
// 获取 数组长度
int array_size = json_object_array_length(json_obj) ;
// 遍历
for( int i=0 ; i < array_size ; ++i ) {
// 按照 索引 遍历
json_one= json_object_array_get_idx(json_obj, i) ;
// 通过 key 获取 value 对象
json_object_object_get_ex(json_one, "aaa", &json_value);
// 转换成 字符串
str_value = json_object_get_string(json_value);
printf("key aaa value [%s]\n", str_value) ;
// 通过 key 获取 value 对象
json_object_object_get_ex(json_one, "iii", &json_value);
// 转换成 字符串
int_value = json_object_get_int(json_value);
printf("key iii value [%d]\n", int_value) ;
}
// 空间释放
json_object_put(json_obj);
return 0 ;
}

发表回复