C/C++的json接口开发

#include "cJSON.h"
#include <string>
#include <iostream>
using namespace std;
//cJSON源码https://download.csdn.net/download/weixin_44747201/19872284?spm=1001.2014.3001.5501
int _tmain(int argc, _TCHAR* argv[])
{
	FILE *f;//输入文件
	long len;//文件长度
	char *content;//文件内容
	cJSON *json;//封装后的json对象
	f=fopen("./1.json","rb");
	fseek(f,0,SEEK_END);
	len=ftell(f);
	fseek(f,0,SEEK_SET);
	content=(char*)malloc(len+1);
	fread(content,1,len,f);
	fclose(f);

	//读
	json=cJSON_Parse(content);
	if (!json) {
		printf("Error before: [%s]\n",cJSON_GetErrorPtr());
	}
	Enter jsonTest;
	char *out=cJSON_Print(json);

	cJSON*  Mechanism =  cJSON_GetObjectItem(json,"Mechanism");//获取Mechanism对象


	cJSON* application =  cJSON_GetArrayItem(Mechanism->child,0);   //获取Mechanism第一个子对象application
	printf("jsonName:%s  jsonValue:%s\n",application->string,application->valuestring);  

	cJSON* PropagateChain =  cJSON_GetArrayItem(Mechanism->child,6);   
	printf("jsonName:%s  jsonValue:%s\n",PropagateChain->string,application->valuestring);    //获取Mechanism第7个子对象PropagateChain
	//PropagateChain是一个数组对象
	int array_size=cJSON_GetArraySize(PropagateChain->child);

	cJSON* item4  = cJSON_GetArrayItem(PropagateChain->child->next, 4);  //获取PropagateChain第2个子对象第5个子对象ClassB
	printf("jsonName:%s  jsonValue:%s\n",item4->string,item4->valuestring);  

	//写接口比较简单不赘述
	cJSON *partInfo = cJSON_CreateObject();
	cJSON_AddStringToObject(partInfo,"key","value");
	char *out;
	out = cJSON_Print(partInfo);//转字符串
	
	return 0;
}

1.json文件

{
    "Mechanism": [
        {
            "application": "aaaa",
            "behavior": "bbbb",
            "method": "cccc",
            "class": "",
            "context": "",
            "type": "",
            "PropagateChain": [
                {
                    "ClassA": "",
                    "RoleA": "",
                    "BehaviorA": "",
                    "MethodA": ""
                },
                {
                    "ClassA": "",
                    "RoleA": "",
                    "BehaviorA": "",
                    "MethodA": "",
                    "ClassB": "",
                    "RoleB": ""
                },
                {
                    "ClassA": "",
                    "RoleA": "",
                    "BehaviorA": "",
                    "MethodA": "",
                    "ClassB": "",
                    "RoleB": ""
                }
            ]
        },
  	{
            "application": "",
            "behavior": "",
            "method": "",
            "class": "",
            "context": "",
            "type": "",
            "PropagateChain": [
                {
                    "ClassA": "",
                    "RoleA": "",
                    "BehaviorA": "",
                    "MethodA": "",
                    "ClassB": "",
                    "RoleB": "",
                    "BehaviorB": ""
                }
            ]
        }
    ]
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值