parson例说

2023-05-16

例说

以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);
}

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

parson例说 的相关文章

随机推荐

  • 【电子技术实验】555定时器秒脉冲时钟电路

    555定时器秒脉冲时钟电路 秒信号发生电路由集成电路555定时器与RC组成的多谐振荡器构成 需要的芯片有集成电路555定时器 xff0c 还有电阻和电容 计算公式 f 61 1 43 xff3b xff08 R1 43 2R2 xff09
  • 【Prometheus二次开发课程 】01 Prometheus简介 (学习笔记)

    文章目录 Prometheus全自主无人机开源软件平台项目创始人介绍 背景多旋翼无人机发展历史 xff1a 多旋翼无人机的优势多旋翼无人机的应用场景什么是自主无人机 xff1f 无人机的基本组成 xff08 航模 xff09 PX4生态系统
  • 【PX4 二次开发 初级】 02 飞控软硬件体系

    PX4 二次开发初级 PX4 飞控软硬件体系 飞控硬件体系PIXHAWK 控制硬件 软件体系PX4 体系原生固件原生固件官网原生固件地面站 APM 体系APM官网 xff1a 原生固件地面站 特点 标题 xff1a PX4二次开发教程 xf
  • 【PX4 二次开发 初级】 03 飞控调试以及地面站使用

    PX4 二次开发 初级 03 飞控调试以及地面站使用 前言IMU三轴稳定性内部构成陀螺仪加速度计磁力计 误差加速度 amp 陀螺仪 磁力计干扰测试 标题 xff1a PX4二次开发教程 xff1a 起源 xff1a 根据阿木实验室讲解课程整
  • 【嵌入式】牧马人G3 电子竞技鼠标拆解分析

    嵌入式 牧马人G3 电子竞技鼠标拆解分析 拆解性能以及构造A702 A704 数据手册引脚图引脚说明功能应用电路图 拆解 拆解后机械鼠标 生前图标 四个螺丝拆掉 左右两侧螺栓拆掉 上壳扒开 垫片剔除 xff0c 然后拔出隐藏在垫片下的螺栓
  • 【Mavros解析 】01 ROS消息以及常用指令

    Mavros解析 01ROS消息以及常用指令 示例代码一示例一代码解析ROS初始化消息订阅 xff1a 模板函数定时器回调循环睡眠函数 示例代码二示例二解析公布消息模板函数 标题 xff1a MAVROS教程 offboard模式下自主飞行
  • 【Mavros解析 】02 ROS服务以及在mavros中体现

    Mavros解析 02 ROS服务以及在mavros中体现 简介实现步骤步骤 1 xff1a 连接服务步骤 2 xff1a 实例化服务参数 xff1a 步骤 3 xff1a 请求服务 Demo头文件订阅回调函数主函数初始化订阅mavrso
  • Pixhawk---通过串口方式添加一个自定义传感器(超声波为例)

    xfeff xfeff Pixhawk 添加一个自定义传感器 超声波 xff08 串口方式 xff09 1 说明 首先超声波模块是通过串口方式发送 xff08 Tx xff09 出数据 xff0c 使用的模块数据发送周期为100ms xff
  • 【PX4 飞控剖析】01 offborad模式的开发与应用

    PX4 飞控剖析 01 offborad模式的开发与应用 offboard模式的开发及应用px4固件的模式自定义模式auto子模式外部模式应用场合 offboard模式的开发及应用 px4固件的模式 px4固件支持10几种飞行模式 xff0
  • 【mavros源码解析】10 MAVROS包含文件及消息机制

    Mavros解析 10 mavros源码 Mavros简介Mavros代码详解libmavconn xff1a mavros xff1a mavros extras mavros msgs MAVROS 包含文件include launch
  • 【PX4 飞控剖析】03 PX4固件烧录以及调试指南

    PX4 飞控剖析 03 PX4固件烧录以及QGC初步指南 一 加载固件二 加载参数三 校准传感器四 遥控器校准五 飞行模式六 电调校准七 检查参数 标题 xff1a PX4 飞控剖析 03 PX4固件烧录以及调试指南起源 xff1a 根据阿
  • 【PX4 飞控剖析】05 PIX4 连接QGC 可以烧录固件但是连接不上

    PX4 飞控剖析 05 PIX4 连接QGC 可以烧录固件但是连接不上 总结 如图 xff1a QGC error link Device on COM3 Error connecting Could not create port 这个是
  • 【SLAM】英特尔D455与D435i的区别

    SLAM 英特尔D455与D435i的区别 参考链接 xff1a bing搜索 D455 深度摄像头 官方介绍 D455 机械尺度更大 视场角范围更广 视场角更宽 同时RGB 传感器技术 支持全局快门 xff0c 如果对视野范围有要求的用户
  • Bubble Planner无人机运动规划算法解读

    Bubble Planner无人机运动规划算法解读 本文将介绍一种无人机的在线路径规划算法 Bubble Planner xff0c Bubble Planner 是港大张富老师MaRS实验室提出了一种的新型规划算法 xff0c 是一种用于
  • 【论文研读】无人机飞行模拟仿真平台设计

    无人机飞行模拟仿真平台设计 摘要 xff1a 为提高飞行控制算法的研发效率 降低研发成本 基于数字孪生技术设计一个无人机硬件在环飞行模拟仿真平台 从几何 物理和行为3个方面研究无人机数字模型构建方法 将物理实体以数字化方式呈现 设计一种多元
  • 【深度学习基础】

    最终效果如上图所示 xff1a 真不知道这一路有多艰难 众所周知CHATGPT 可以做表格和 公式 xff0c 但它输出的文本是直接渲染好的 你是直接复制不了的 xff0c 你只能复制它出来的字体 于是我尝试了各种 想让它输出表格和文字的方
  • 【蛤蟆先生去看心理医生】

    第一章 整个人都不太好 人物性格描述蛤蟆热情 时尚 爱冒险 xff0c 现在抑郁 xff0c 不能自拔獾智慧 威严河鼠关心朋友 xff0c 有点絮叨鼹鼠体贴善良 第二章 擎友前来相助 讲诉了鼹鼠和河鼠对蛤蟆情况的担忧和讨论 鼹鼠回忆起过去蛤
  • linux下tar、zip、rar解压缩命令使用

    zip 命令 将当前目录下的所有文件和文件夹全部压缩成myfile zip zip r myfile zip r表示递归压缩子目录下所有文件 把myfile zip文件解压到 home sunny unzip o d home sunny
  • Pixhawk—添加一个自定义传感器—超声波(串口方式)

    xfeff xfeff 版权声明 xff1a 本文为博主 原创 文章 xff0c 未经博主允许可以转载 xff0c 注明博客出处 xff1a http blog csdn net FreeApe 目录 43 Pixhawk添加一个自定义传感
  • parson例说

    例说 以JSON中国网站的例子 xff0c 测试代码 include 34 parson h 34 include lt stdio h gt include lt stdlib h gt void test write void void