您的位置:

关于c++builderjson的信息

关于c++builderjson的信息

更新:

本文目录一览:

如何使用c语言获取文件中的json数据

直接文件操作就行了。fopen,然后直接读出文件中的json数据,保存到一个数组里面就行了

如何使用c builder

新建一个Console Application或者Console Wizard就可以调试C/C++程序了(无需保存工程,可以内存编译),比VC++要简单。

怎么用C语言获取JSON中的数据?

用C语言获取JSON中的数据的方法是使用 CJSON。

以下简单介绍用CJSON的思路及实现:

1)创建json,从json中获取数据。

#nclude stdio.h

#include "cJSON.h"

char * makeJson()

{

cJSON * pJsonRoot = NULL;

pJsonRoot = cJSON_CreateObject();

if(NULL == pJsonRoot)

{

//error happend here

return NULL;

}

cJSON_AddStringToObject(pJsonRoot, "hello", "hello world");

cJSON_AddNumberToObject(pJsonRoot, "number", 10010);

cJSON_AddBoolToObject(pJsonRoot, "bool", 1);

cJSON * pSubJson = NULL;

pSubJson = cJSON_CreateObject();

if(NULL == pSubJson)

{

// create object faild, exit

cJSON_Delete(pJsonRoot);

return NULL;

}

cJSON_AddStringToObject(pSubJson, "subjsonobj", "a sub json string");

cJSON_AddItemToObject(pJsonRoot, "subobj", pSubJson);

char * p = cJSON_Print(pJsonRoot);

// else use :

// char * p = cJSON_PrintUnformatted(pJsonRoot);

if(NULL == p)

{

//convert json list to string faild, exit

//because sub json pSubJson han been add to pJsonRoot, so just delete pJsonRoot, if you also delete pSubJson, it will coredump, and error is : double free

cJSON_Delete(pJsonRoot);

return NULL;

}

//free(p);

cJSON_Delete(pJsonRoot);

return p;

}

void parseJson(char * pMsg)

{

if(NULL == pMsg)

{

return;

}

cJSON * pJson = cJSON_Parse(pMsg);

if(NULL == pJson)

{

// parse faild, return

return ;

}

// get string from json

cJSON * pSub = cJSON_GetObjectItem(pJson, "hello");

if(NULL == pSub)

{

//get object named "hello" faild

}

printf("obj_1 : %s\n", pSub-valuestring);

// get number from json

pSub = cJSON_GetObjectItem(pJson, "number");

if(NULL == pSub)

{

//get number from json faild

}

printf("obj_2 : %d\n", pSub-valueint);

// get bool from json

pSub = cJSON_GetObjectItem(pJson, "bool");

if(NULL == pSub)

{

// get bool from json faild

}

printf("obj_3 : %d\n", pSub-valueint);

// get sub object

pSub = cJSON_GetObjectItem(pJson, "subobj");

if(NULL == pSub)

{

// get sub object faild

}

cJSON * pSubSub = cJSON_GetObjectItem(pSub, "subjsonobj");

if(NULL == pSubSub)

{

// get object from subject object faild

}

printf("sub_obj_1 : %s\n", pSubSub-valuestring);

cJSON_Delete(pJson);

}

int main()

{

char * p = makeJson();

if(NULL == p)

{

return 0;

}

printf("%s\n", p);

parseJson(p);

free(p);//这里不要忘记释放内存,cJSON_Print()函数或者cJSON_PrintUnformatted()产生的内存,使用free(char *)进行释放

return 0;

}

2)创建json数组和解析json数组

//创建数组,数组值是另一个JSON的item,这里使用数字作为演示

char * makeArray(int iSize)

{

cJSON * root = cJSON_CreateArray();

if(NULL == root)

{

printf("create json array faild\n");

return NULL;

}

int i = 0;

for(i = 0; i iSize; i++)

{

cJSON_AddNumberToObject(root, "hehe", i);

}

char * out = cJSON_Print(root);

cJSON_Delete(root);

return out;

}

//解析刚刚的CJSON数组

void parseArray(char * pJson)

{

if(NULL == pJson)

{

return ;

}

cJSON * root = NULL;

if((root = cJSON_Parse(pJson)) == NULL)

{

return ;

}

int iSize = cJSON_GetArraySize(root);

for(int iCnt = 0; iCnt iSize; iCnt++)

{

cJSON * pSub = cJSON_GetArrayItem(root, iCnt);

if(NULL == pSub)

{

continue;

}

int iValue = pSub-valueint;

printf("value[%2d] : [%d]\n", iCnt, iValue);

}

cJSON_Delete(root);

return;

}

有两种方法:

一是标准的输出输入方式 比如新建一个磁盘文件c:\a.txt, 将键盘输入的一字符串写到文件中:

FILE *ft;

char str[50];

ft=fopen("c:\\a.txt","w+");

printf("输入一个字符串:");

scanf("%s",str);

fputs(str,ft);

fclose(ft);

//重新打开这个文件并读出字符串,显示在屏幕上 ft=fopen("c:\\a.txt","rt");

fgets(str,50,ft);

fclose(ft); printf("%s",str);

二是低级输入输出方式 仍如上例:

int hd; char str[50]; printf("输入一个字符串:");

scanf("%s",str);

hd=open("c:\\a.txt",O_CREAT|O_TEXT|O_WRONLY);

write(hd,str,strlen(str));

close(hd); //重新打开这个文件并读出字符串,显示在屏幕上。

hd=open("c:\\a.txt",O_TEXT|O_RDONLY); read(hd,str,50);

close(hd); printf("%s",str)。

cbuilder是什么?它与c++builder是一样的吗?

没有听说过什么c

builder

呀,

Borland

C++

Builder

是Borland

公司开发的用于C/C++开发的IDE(

集成开发环境

1、没有听说过c

builder

2、如果有的话应该是差不多的

IDE,IDE是

编译器

解释器

,编缉器等的集合体

3、按字面解释的话,c

builder

应该只能编译C语言,C++

Builder

有一款开发环境就是Borland

公司的Borland

C++

Builder

,可以编译C/

C++语言

c语言 解析json字符串

你好,你用json-c库,编译通过了吗?我是在ubuntu里使用json-c库,但是无法编译通过,报错 undefined reference to 'json_tokener_parse',类似的函数没定义的错误,你是怎么调用的json-c库?请教一下,谢谢!

c++builder 6.0 里面的json类在哪

BCB6 不带json的要2010版本的才有,不过建议自己写一个 用起来更方便

/*

  Copyright (c) 2009 Dave Gamble

 

  Permission is hereby granted, free of charge, to any person obtaining a copy

  of this software and associated documentation files (the "Software"), to deal

  in the Software without restriction, including without limitation the rights

  to use, copy, modify, merge, publish, distribute, sublicense, and/or sell

  copies of the Software, and to permit persons to whom the Software is

  furnished to do so, subject to the following conditions:

 

  The above copyright notice and this permission notice shall be included in

  all copies or substantial portions of the Software.

 

  THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR

  IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,

  FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE

  AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER

  LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,

  OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN

  THE SOFTWARE.

*/

#ifndef cJSON__h

#define cJSON__h

#ifdef __cplusplus

extern "C"

{

#endif

/* cJSON Types: */

#define cJSON_False 0

#define cJSON_True 1

#define cJSON_NULL 2

#define cJSON_Number 3

#define cJSON_String 4

#define cJSON_Array 5

#define cJSON_Object 6

    

#define cJSON_IsReference 256

/* The cJSON structure: */

typedef struct cJSON {

    struct cJSON *next,*prev;    /* next/prev allow you to walk array/object chains. Alternatively, use GetArraySize/GetArrayItem/GetObjectItem */

    struct cJSON *child;        /* An array or object item will have a child pointer pointing to a chain of the items in the array/object. */

    int type;                    /* The type of the item, as above. */

    char *valuestring;            /* The item's string, if type==cJSON_String */

    int valueint;                /* The item's number, if type==cJSON_Number */

    double valuedouble;            /* The item's number, if type==cJSON_Number */

    char *string;                /* The item's name string, if this item is the child of, or is in the list of subitems of an object. */

} cJSON;

typedef struct cJSON_Hooks {

      void *(*malloc_fn)(size_t sz);

      void (*free_fn)(void *ptr);

} cJSON_Hooks;

/* Supply malloc, realloc and free functions to cJSON */

extern void cJSON_InitHooks(cJSON_Hooks* hooks);

/* Supply a block of JSON, and this returns a cJSON object you can interrogate. Call cJSON_Delete when finished. */

extern cJSON *cJSON_Parse(const char *value);

/* Render a cJSON entity to text for transfer/storage. Free the char* when finished. */

extern char  *cJSON_Print(cJSON *item);

/* Render a cJSON entity to text for transfer/storage without any formatting. Free the char* when finished. */

extern char  *cJSON_PrintUnformatted(cJSON *item);

/* Delete a cJSON entity and all subentities. */

extern void   cJSON_Delete(cJSON *c);

/* Returns the number of items in an array (or object). */

extern int      cJSON_GetArraySize(cJSON *array);

/* Retrieve item number "item" from array "array". Returns NULL if unsuccessful. */

extern cJSON *cJSON_GetArrayItem(cJSON *array,int item);

/* Get item "string" from object. Case insensitive. */

extern cJSON *cJSON_GetObjectItem(cJSON *object,const char *string);

/* For analysing failed parses. This returns a pointer to the parse error. You'll probably need to look a few chars back to make sense of it. Defined when cJSON_Parse() returns 0. 0 when cJSON_Parse() succeeds. */

extern const char *cJSON_GetErrorPtr();

    

/* These calls create a cJSON item of the appropriate type. */

extern cJSON *cJSON_CreateNull();

extern cJSON *cJSON_CreateTrue();

extern cJSON *cJSON_CreateFalse();

extern cJSON *cJSON_CreateBool(int b);

extern cJSON *cJSON_CreateNumber(double num);

extern cJSON *cJSON_CreateString(const char *string);

extern cJSON *cJSON_CreateArray();

extern cJSON *cJSON_CreateObject();

/* These utilities create an Array of count items. */

extern cJSON *cJSON_CreateIntArray(int *numbers,int count);

extern cJSON *cJSON_CreateFloatArray(float *numbers,int count);

extern cJSON *cJSON_CreateDoubleArray(double *numbers,int count);

extern cJSON *cJSON_CreateStringArray(const char **strings,int count);

/* Append item to the specified array/object. */

extern void cJSON_AddItemToArray(cJSON *array, cJSON *item);

extern void    cJSON_AddItemToObject(cJSON *object,const char *string,cJSON *item);

/* Append reference to item to the specified array/object. Use this when you want to add an existing cJSON to a new cJSON, but don't want to corrupt your existing cJSON. */

extern void cJSON_AddItemReferenceToArray(cJSON *array, cJSON *item);

extern void    cJSON_AddItemReferenceToObject(cJSON *object,const char *string,cJSON *item);

/* Remove/Detatch items from Arrays/Objects. */

extern cJSON *cJSON_DetachItemFromArray(cJSON *array,int which);

extern void   cJSON_DeleteItemFromArray(cJSON *array,int which);

extern cJSON *cJSON_DetachItemFromObject(cJSON *object,const char *string);

extern void   cJSON_DeleteItemFromObject(cJSON *object,const char *string);

    

/* Update array items. */

extern void cJSON_ReplaceItemInArray(cJSON *array,int which,cJSON *newitem);

extern void cJSON_ReplaceItemInObject(cJSON *object,const char *string,cJSON *newitem);

#define cJSON_AddNullToObject(object,name)    cJSON_AddItemToObject(object, name, cJSON_CreateNull())

#define cJSON_AddTrueToObject(object,name)    cJSON_AddItemToObject(object, name, cJSON_CreateTrue())

#define cJSON_AddFalseToObject(object,name)        cJSON_AddItemToObject(object, name, cJSON_CreateFalse())

#define cJSON_AddNumberToObject(object,name,n)    cJSON_AddItemToObject(object, name, cJSON_CreateNumber(n))

#define cJSON_AddStringToObject(object,name,s)    cJSON_AddItemToObject(object, name, cJSON_CreateString(s))

#ifdef __cplusplus

}

#endif

#endif

关于c++builderjson的信息

本文目录一览: 1、如何使用c语言获取文件中的json数据 2、如何使用c builder 3、怎么用C语言获取JSON中的数据? 4、cbuilder是什么?它与c++builder是一样的吗? 5

2023-12-08
关于java学习笔记良葛格的信息

2022-11-11
关于已前的学习笔记java的信息

2022-11-18
关于python学习笔记十三的信息

2022-11-19
关于java对话框的信息

2023-01-04
关于python学习第四次笔记的信息

2022-11-08
关于java基础知识笔记1的信息

2022-11-20
关于javajsptomcatmysql的信息

本文目录一览: 1、如何在服务器上配置JSP,jsp的服务器到底怎么配置啊? 2、jsp 跟tomcat和mysql有什么联系,怎么用?越详细越好!谢谢 3、怎么用jsp连接mysql数据库 4、如何

2023-12-08
印象笔记记录java学习(Java成长笔记)

2022-11-12
关于java性能的小笔记(java代码性能分析)

2022-11-12
关于jfcio的信息

2022-11-28
发篇java复习笔记(java课程笔记)

2022-11-09
java客户端学习笔记(java开发笔记)

2022-11-14
javascript简要笔记,JavaScript读书笔记

2022-11-17
htmljs编程笔记(html代码笔记)

本文目录一览: 1、html代码和JS代码有什么区别 2、如何在html中调用js函数 3、JavaScript学习笔记之数组基本操作示例 4、HTML5初学者笔记 5、《web前端笔记7》js字符—

2023-12-08
关于java获取eth余额的信息

2022-11-18
信息记录的php代码如何编写,php笔记源码

2022-11-30
关于python学习笔记第十四周的信息

2022-11-15
关于java编程思想读书笔记2的信息

2022-11-18
java学习笔记(java初学笔记)

2022-11-14