c语言JSON库 Parson的编译和使用

c语言JSON库 Parson的编译和使用

最近一直学习ndk,Android肯定会用到json,这里介绍一个c语言写成的JSON解析库

Parson介绍

Parson is a lighweight json library written in C.

c语言中使用的一个轻量级的json库

特点:

  • Full JSON support
  • Lightweight (only 2 files)
  • Simple API
  • Addressing json values with dot notation (similar to C structs or objects in most OO languages, e.g. “objectA.objectB.value”)
  • C89 compatible
  • Test suites

地址: https://github.com/kgabis/parson.git

简单使用

  1. 构造json

    void serialization_example(void) {
        JSON_Value *root_value = json_value_init_object();
        JSON_Object *root_object = json_value_get_object(root_value);
        
        char *serialized_string = NULL;
        json_object_set_string(root_object, "name", "John Smith");
        json_object_set_number(root_object, "age", 25);
        json_object_dotset_string(root_object, "address.city", "Cupertino");
        json_object_dotset_value(root_object, "contact.emails", json_parse_string("[\"email@example.com\",\"email2@example.com\"]"));
        
        serialized_string = json_serialize_to_string_pretty(root_value);
        puts(serialized_string);
        
        json_free_serialized_string(serialized_string);
        json_value_free(root_value);
    }
    

    输出内容:

    {
        "name": "John Smith",
        "age": 25,
        "address": {
            "city": "Cupertino"
        },
        "contact": {
            "emails": [
                "email@example.com",
                "email2@example.com"
            ]
        }
    }
    

代码收录

https://github.com/ddssingsong/AnyNdk

  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
使用 `parson` 提供的方法创建 JSON 对象并打印出来,需要进行以下步骤: 1. 引入 `parson` ,可以通过在代码中使用 `#include "parson.h"` 来实现。 2. 创建一个 `JSON_Value` 对象,并使用 `json_value_init_object()` 函数对其进行初始化,表示这是一个 JSON 对象。 3. 使用 `json_object_set_string()` 函数将键值对添加到 JSON 对象中,该函数的第一个参数为 JSON 对象,第二个参数为键,第三个参数为值。 4. 使用 `json_serialize_to_string()` 函数将 JSON 对象序列化为字符串。 5. 打印 JSON 字符串。 下面是示例代码: ``` #include "parson.h" #include <stdio.h> int main() { // 创建 JSON 对象 JSON_Value *root_value = json_value_init_object(); JSON_Object *root_object = json_value_get_object(root_value); // 添加键值对到 JSON 对象中 json_object_set_string(root_object, "name", "Alice"); json_object_set_number(root_object, "age", 30); json_object_set_boolean(root_object, "isMarried", true); // 将 JSON 对象序列化为字符串并打印 char *serialized_string = json_serialize_to_string(root_value); printf("%s\n", serialized_string); // 释放内存 json_free_serialized_string(serialized_string); json_value_free(root_value); return 0; } ``` 上述代码将创建一个 JSON 对象,将三个键值对添加到其中,然后将 JSON 对象序列化为字符串并打印出来。输出结果应该类似于: ``` {"name":"Alice","age":30,"isMarried":true} ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

ddssingsong

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值