parson例说

例说

以JSON中国网站的例子,测试代码



#include "parson.h"
#include <stdio.h>
#include <stdlib.h>

void test_write(void);
void test_read(void);

int main()
{
    test_write();
    test_read();
    char * p = json_serialize_to_string_pretty(json_parse_file("test.json"));
    printf("%s\n", p);
    free(p);
    return 0;
}

void test_write(void)
{
    JSON_Value *pJsonRoot = json_value_init_object();
    json_object_set_string(json_object(pJsonRoot), "name", "JSON中国");
    json_object_set_string(json_object(pJsonRoot), "url", "http://www.json.org.cn");
    json_object_set_number(json_object(pJsonRoot), "page", 88);
    json_object_set_boolean(json_object(pJsonRoot), "isNonProfit", 1);
    JSON_Value *pJsonSub = json_value_init_object();
    json_object_set_value(json_object(pJsonRoot), "address", pJsonSub);
    json_object_set_string(json_object(pJsonSub), "street", "浙大路38号.");
    json_object_set_string(json_object(pJsonSub), "city", "浙江杭州");
    json_object_set_string(json_object(pJsonSub), "country", "中国");
    pJsonSub = json_value_init_array();
    json_object_set_value(json_object(pJsonRoot), "links", pJsonSub);
    JSON_Value *pJsonSubSub = json_value_init_object();
    json_array_append_value(json_array(pJsonSub), pJsonSubSub);
    json_object_set_string(json_object(pJsonSubSub), "name", "Google");
    json_object_set_string(json_object(pJsonSubSub), "url", "http://www.google.com");
    pJsonSubSub = json_value_init_object();
    json_array_append_value(json_array(pJsonSub), pJsonSubSub);
    json_object_set_string(json_object(pJsonSubSub), "name", "Baidu");
    json_object_set_string(json_object(pJsonSubSub), "url", "http://www.baidu.com");
    pJsonSubSub = json_value_init_object();
    json_array_append_value(json_array(pJsonSub), pJsonSubSub);
    json_object_set_string(json_object(pJsonSubSub), "name", "SoSo");
    json_object_set_string(json_object(pJsonSubSub), "url", "http://www.SoSo.com");
    json_serialize_to_file_pretty(pJsonRoot, "test.json");
    json_value_free(pJsonRoot);
}

void test_read(void)
{
    int i;
    JSON_Value *schema = json_parse_string("{\"name\":\"\"}");
    JSON_Value *pJsonRoot = json_parse_file("test.json");
    printf("name:%s\n", json_object_get_string(json_object(pJsonRoot), "name"));
    printf("url:%s\n", json_object_get_string(json_object(pJsonRoot), "url"));
    printf("page:%g\n", json_object_get_number(json_object(pJsonRoot), "page"));
    printf("isNonProfit:%s\n", (json_object_get_number(json_object(pJsonRoot), "page") != 0) ? "true":"false");
    printf("address->street:%s\n", json_object_get_string(json_object_get_object(json_object(pJsonRoot), "address"), "street"));
    printf("address->city:%s\n", json_object_get_string(json_object_get_object(json_object(pJsonRoot), "address"), "city"));
    printf("address->country:%s\n", json_object_get_string(json_object_get_object(json_object(pJsonRoot), "address"), "country"));
    for (i = 0; i < json_array_get_count(json_array(json_object_get_value(json_object(pJsonRoot), "links"))); i++)
    {
        printf("links->[%d]->name:%s\n", i, json_object_get_string(json_array_get_object(json_array(json_object_get_value(json_object(pJsonRoot), "links")), i), "name"));
        printf("links->[%d]->url:%s\n", i, json_object_get_string(json_array_get_object(json_array(json_object_get_value(json_object(pJsonRoot), "links")), i), "url"));
    }
    json_value_free(schema);
    json_value_free(pJsonRoot);
}

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值