#ifdef WIN32
#define _CRT_SECURE_NO_WARNINGS
#include <SDKDDKVer.h>
#include <windows.h>
#endif
#include "JsonLite.h"
void Demo()
{
//parse json string
JsonValue json = JsonParser::Parse("{}");
//get items in array
for (UINT i = 0, l = json.GetLength(); i < l; ++i)
{
//way 1 recommend
JString string1 = json.GetString(i);
int integer1 = json.GetInteger(i);
//way 2
JString string2 = json[i]->GetString();
int integer2 = json[i]->GetInteger();
//way 3
JString string3 = json.Get(i)->GetString();
int integer3 = json.Get(i)->GetInteger();
}
//get items in object
for (UINT i = 0, l = json.GetLength(); i < l; ++i)
{
JString name = json.GetName(i);
//way 1 recommend
JString string1 = json.GetString(name);
int integer1 = json.GetInteger(name);
//way 2
JString string2 = json[name]->GetString();
int integer2 = json[name]->GetInteger();
//way 3
JString string3 = json.Get(name)->GetString();
int integer3 = json.Get(name)->GetInteger();
}
//check whether the item exists
if (json.Contain("value name"))
{
//TODO:
}
//get object item
JsonValue obj = json.Get("object item's name");
if (obj)
{
obj.GetString("value name1");
obj.GetString("value name2");
}
//get array item
JsonValue ary = json.Get("array item's name");
if (ary)
{
ary.GetString(0); //first items's index is 0
ary.GetString(1);
}
}
void Print(const char *pFormat, ...)
{
va_list args;
va_start(args, pFormat);
vprintf(pFormat, args);
puts("");
#ifdef WIN32
//Print to output window
va_start(args, pFormat);
int len = _vscprintf(pFormat, args);
char *buf = new char[len + 3];
{
va_start(args, pFormat);
vsprintf(buf, pFormat, args);
buf[len++] = '\r';
buf[len++] = '\n';
buf[len] = 0;
OutputDebugStringA(buf);
delete[] buf;
}
#endif
}
void TestStringifyObject()
{
JsonObjectBuilder builder;
builder.Set("string", "abc");
builder.Set("integer", 123);
builder.Set("double", 3.14);
builder.Set("array", JsonArrayBuilder()
.Add("item1")
.Add("item2"));
builder.Set("object", JsonObjectBuilder()
.Set("name1", "value1")
.Set("name2", "value2"));
Print("object: %s", (char*)builder.Build());
}
void TestStringifyArray()
{
JsonArrayBuilder builder;
builder.Add("abc");
builder.Add(123);
builder.Add(3.14);
builder.Add(JsonArrayBuilder()
.Add("item1")
.Add("item2"));
builder.Add(JsonObjectBuilder()
.Set("name1", "value1")
.Set("name2", "value2"));
Print("array: %s", (char*)builder.Build());
}
void TestParse()
{
JsonObjectBuilder builder;
builder.Set("string", "abc");
builder.Set("integer", 123);
builder.Set("double", 3.14);
builder.SetBool("boolean", true);
builder.SetNull("null");
builder.Set("array", JsonArrayBuilder()
.Add("item1")
.Add("item2"));
builder.Set("object", JsonObjectBuilder()
.Set("name1", "value1")
.Set("name2", "value2"));
//Print((char*)builder.Build());
JsonValue json = JsonParser::Parse(builder.Build());
for (UINT i = 0, l = json.GetLength(); i < l; ++i)
{
JString name = json.GetName(i);
JString type = json.Get(name)->GetType();
JString value = json.Get(name)->GetString();
Print("Name=[%-7s] Type=[%-7s] StringValue=\"%s\"", (char*)name, (char*)type, (char*)value);
}
Print(JsonFormater::Format(json, 4)); //4: indent = 4
}
int main(int argc, char *argv[])
{
TestStringifyObject();
TestStringifyArray();
TestParse();
return 0;
}
没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
C++版轻量级JSON库JsonLite是一个专门用于处理JSON数据格式的库,它的设计目标是提供一个轻量级、高效且易于使用的C++实现。JsonLite能够完成JSON数据的生成和解析工作,满足开发者在C++程序中处理JSON数据的需求。它的核心特点在于不需要依赖任何第三方库,除了C/C++标准库以外。这使得JsonLite具有很好的平台兼容性和可移植性,能够在不同的操作系统和硬件平台上运行,无需担心额外的依赖问题。由于它不依赖第三方库,因此项目较小,对于资源有限的嵌入式系统或者对性能要求较高的应用来说,是一个理想的选择。另外,由于JsonLite是轻量级的设计,它的性能开销小,运行效率高,非常适合在性能敏感的应用中使用。使用JsonLite,开发者可以很方便地在C++代码中创建JSON对象、数组、字符串等数据结构,并进行相应的序列化和反序列化操作,处理JSON数据就像操作C++原生数据结构一样简单。JsonLite的设计也注重易用性,提供了简洁的API接口,使得开发者能够快速上手,减少开发工作量。此外,由于JsonLite对第三方库的零依赖性,也意味着它不会因为第三方库的更新而带来兼容性问题,这在长期维护项目时显得尤为重要。在实际的软件开发过程中,JsonLite可以应用于网络通信、数据存储、配置文件管理等多个领域,为处理JSON格式的数据提供了坚实的基础。
资源推荐
资源详情
资源评论





























收起资源包目录






































共 27 条
- 1
资源评论


Java程序员-张凯
- 粉丝: 1w+
上传资源 快速赚钱
我的内容管理 展开
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助


最新资源
- 基于机器学习的商品评论情感分析-毕业设计项目
- 【C语言编程】字符串初始化与操作:字符数组定义、打印及指针访问方法解析
- 【C语言编程】字符串拷贝函数的多种实现方式及其应用场景分析:基础算法学习与实践
- 【C语言编程】基于while和do-while循环的strstr函数实现:字符串匹配与计数算法分析
- ensp软件安装包(包含virtualbox、wireshark、winpcap)
- 【C语言编程】指针与数组操作示例:内存管理及字符串处理函数应用详解
- 【C语言编程】两头堵模型实现:去除字符串首尾空格及长度计算功能开发
- 基于机器学习技术的商品评论情感分析毕业设计项目
- 5-分析式AI基础 6-不同领域的AI算法 7-机器学习神器
- 8-时间序列模型 9-时间序列AI大赛 10-神经网络基础与Tensorflow实战
- Java并发编程的设计原则与模式
- 机器学习基础算法模型实现
- 人工智能与机器学习课程群
- 毕业论文答辩发言稿.docx
- 本科学位论文答辩的技巧与应变能力.docx
- 本科毕业论文答辩范文.docx
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈



安全验证
文档复制为VIP权益,开通VIP直接复制
