Jasson库使用

#include <stdio.h>
#include <jansson.h>
int main()
{
   
    json_t *ptJsRoot = json_pack("{s:s, s:{}, s:{}, s:{}}",
              "devid", "111",
              "card_lights_info",
              "left_smu_lights_info",
              "right_smu_lights_info");

    if( NULL == ptJsRoot)
    {
       printf("ptJsRoot pack failed!\n");
       return ;
    }

    json_t * ptJsTmp = NULL;
    //card_lights_info
    json_t *ptJsCardLighsInfo=NULL;
    ptJsCardLighsInfo = json_pack("{s:i, s:[]}","card_nums",3, "card_lights_detail");
    if( NULL == ptJsCardLighsInfo)
    {
      printf("ptJsCardLighsInfo pack failed!\n");
      return ;
    }

    ptJsTmp = json_object_get(ptJsRoot, "card_lights_info");
    if( NULL == ptJsTmp)
    {
      printf("ptJsTmp card_lights_info not exist!\n");
      return ;
    }

   json_object_update_missing(ptJsTmp, ptJsCardLighsInfo);
   json_decref(ptJsCardLighsInfo);
  

   ptJsTmp = json_object_get(ptJsRoot, "card_lights_info");
   if( NULL == ptJsTmp )
   {
     printf("card_lights_info not exist!\n");
   }

   printf("card_nums: %d\n", json_integer_value( json_object_get(ptJsTmp, "card_nums") ));


    ptJsTmp = json_object_get(ptJsTmp, "card_lights_detail");
    if( NULL == ptJsTmp)
    {
      printf("ptJsTmp card_lights_detail not exist!\n");
      return ;
    }
      //card_lights_detail
    int i = 0;
    int j = 0;
    for( i= 0; i < 3; i++)
    {
        json_t *ptJsCardLightsDetail = json_pack("{s:s,s:i,s:[]}",
                "card_guid","11111111",
                "lights_num",i,
                "lights_info");
       if( NULL == ptJsCardLightsDetail)
      {
           printf("ptJsCardLightsDetail json_pack failed!\n");
           return ;
      }

      json_t *ptJsLinghtsInfoTmp = json_object_get(ptJsCardLightsDetail, "lights_info");
      if( NULL == ptJsLinghtsInfoTmp )
      {
         printf("lights_info is not exist!\n");
         return ;
      }

      for( j = 0; j < i; j++)
      {
          json_t *ptJsLightsInfo = json_pack("{s:i,s:i}",
                                  "lights_type",i,
                                  "lights_color",j);
          if( NULL == ptJsLightsInfo )
          {
            printf("ptJsCardLightsDetail json_pack failed!\n");
            return;
          }

          json_array_append(ptJsLinghtsInfoTmp, ptJsLightsInfo);
          json_decref(ptJsLightsInfo);
      }
      json_array_append(ptJsTmp, ptJsCardLightsDetail);
      json_decref(ptJsCardLightsDetail);
    }


    printf("--------------------------------------\n");
    for( i = 0; i< json_array_size(ptJsTmp); i++)
    {
       json_t * ptCardinfo = json_array_get(ptJsTmp, i);
       printf("lights_num: %d\n", json_integer_value(json_object_get(ptCardinfo, "lights_num")));
       printf("card_guid: %s\n", json_string_value(json_object_get(ptCardinfo, "card_guid")));
       printf("----------\n");
       json_t *ptJsLightsTmp = json_object_get(ptCardinfo, "lights_info");
       if( NULL == ptJsLightsTmp )
       { 
         printf("lights_info is not exist!\n");
         return ;
       }

       for( j = 0; j < json_integer_value(json_object_get(ptCardinfo, "lights_num")); j++ )
       {
          json_t * ptJsLightsInfo = json_array_get(ptJsLightsTmp, j);
          printf("lights_type: %d\n", json_integer_value(json_object_get(ptJsLightsInfo, "lights_type")));
          printf("lights_color: %d\n", json_string_value(json_object_get(ptJsLightsInfo, "lights_color")));
          printf("------------------------\n");
       }
    }


     
    //  json_t * ptJsTmp1 = NULL;
    //  ptJsTmp1 = json_object_get(ptJsRoot, "card_lights_info");
    // if( NULL == ptJsTmp1 )
    // {
    //   printf("card_lights_info not exist!\n");
    // }
    // printf("--------------------------------------\n");
    // printf("card_nums: %d\n", json_integer_value( json_object_get(ptJsTmp1, "card_nums") ));

    //  ptJsTmp1 = json_object_get(ptJsTmp1, "card_lights_detail");

    // if( NULL == ptJsTmp1 )
    // {
    //   printf("card_lights_detail not exist!\n");
    // }

    // printf("--------------------------------------\n");
    // for( i = 0; i< json_array_size(ptJsTmp1); i++)
    // {
    //    json_t * ptCardinfo1 = json_array_get(ptJsTmp1, i);
    //    printf("lights_num: %d\n", json_integer_value(json_object_get(ptCardinfo1, "lights_num")));
    //    printf("card_guid: %s\n", json_string_value(json_object_get(ptCardinfo1, "card_guid")));
    // }

}

编译:gcc -o test test.c -ljansson -Wl,-rpath=/usr/local/lib/

转载于:https://my.oschina.net/lvhuizhenblog/blog/619113

### 如何在 PyCharm 中安装 #### 打开设置并进入 Python 解释器页面 为了管理项目所需的外部依赖项,在 PyCharm 中可以通过图形化界面轻松地添加新的 Python 。当需要向当前工作空间引入额外的功能模块时,应当先访问项目的配置选项。具体操作是从菜单栏选择 `File` -> `Settings` 来启动全局偏好设定对话框[^1]。 #### 添加新包到解释器环境中 一旦进入了 Settings/Preferences 对话框之后,定位至左侧边栏中的 "Project:<Your_Project_Name>" 部分下的 `Python Interpreter` 节点。在这里可以看到已有的所有可用的包列表以及所使用Python 版本信息。要增加一个新的,只需点击位于窗口右上角位置的小加号按钮 (+),这将会弹出一个用于浏览可获取软件包的新视窗[^2]。 #### 搜索并安装目标 此时可以在搜索栏内键入想要查找的具体名称,比如 `requests` 或者其他任何合法有效的 pip 安装源上的资源名。找到对应的条目后,勾选它旁边的复选框,并按下底部中央区域里的 `Install Package` 键来触发下载过程。整个流程由 IDE 自动处理完毕直至完成部署为止[^3]。 #### 验证安装状态 确认新增加的已经被正确加载的方式之一就是返回到之前的 `Python Interpreter` 页面查看最新的包清单里是否出现了刚才加入的那个名字。另外也可以通过编写简单的测试脚本来验证其功能正常与否,例如尝试导入该执行一些基本的操作以确保一切按预期运行[^4]。 ```python import requests response = requests.get('https://www.example.com') print(response.status_code) ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值