1@page jsoncpp jsoncpp
2
3[更正文档](https://gitee.com/alios-things/jsoncpp/edit/master/README.md)      [贡献说明](https://help.aliyun.com/document_detail/302301.html)
4
5# 概述
6
7JSON是一种轻量级的数据交换格式。它可以表示数字,字符串,值的有序序列以及名称/值对的集合。
8
9JsonCpp是一个C ++库,它允许处理JSON值,包括在字符串之间进行序列化和反序列化。它还可以在反序列化/序列化步骤中保留现有注释,从而使其成为存储用户输入文件的便捷格式。
10
11JsonCpp 是一个开源三方库,官方地址如下:
12https://github.com/open-source-parsers/jsoncpp
13
14该组件支持以下功能:
15- json字符串编码
16- json字符串解码
17
18## 版权信息
19> MIT license
20
21## 目录结构
22```tree
23.
24├── cmake
25├── CMakeFiles
26├── devtools
27├── doc
28├── example
29│   └── jsoncpp_comp_example.c    # jsoncpp 测试用例代码
30├── include
31│   └── json                      # jsoncpp 头文件
32├── pkg-config
33├── src
34│   └── lib_json                  # jsoncpp 核心源文件
35└── test                          # jsoncpp 测试相关文件
36```
37
38## 依赖组件
39
40* osal_aos
41* cplusplus
42
43# 常用配置
44
45# API说明
46    第三方库 API 对应放在头文件中,每个头文件的类都包含了类中函数的详细解释
47
48Read 相关类:
49
50```C
51class JSON_API CharReader
52class JSON_API Factory
53class JSON_API CharReaderBuilder
54```
55
56Write 相关类:
57
58```C
59class JSON_API StreamWriter
60class JSON_API StreamWriterBuilder
61```
62value 相关类:
63
64```C
65class JSON_API Value
66class JSON_API Path
67class JSON_API ValueIteratorBase
68class JSON_API ValueConstIterator
69class JSON_API ValueIterator
70```
71
72# 使用示例
73
74组件使用示例相关的代码下载、编译和固件烧录均依赖AliOS Things配套的开发工具,所以首先需要参考[《AliOS Things集成开发环境使用说明之搭建开发环境》](https://help.aliyun.com/document_detail/302378.html),下载安装。
75待开发环境搭建完成后,可以按照以下步骤进行示例的测试。
76
77## 步骤1 创建或打开工程
78
79**打开已有工程**
80
81如果用于测试的案例工程已存在,可参考[《AliOS Things集成开发环境使用说明之打开工程》](https://help.aliyun.com/document_detail/302381.html)打开已有工程。
82
83**创建新的工程**
84
85组件的示例代码可以通过编译链接到AliOS Things的任意案例(solution)来运行,这里选择helloworld_demo案例。helloworld_demo案例相关的源代码下载可参考[《AliOS Things集成开发环境使用说明之创建工程》](https://help.aliyun.com/document_detail/302379.html)86
87## 步骤2 添加组件
88
89案例下载完成后,需要在helloworld_demo组件的package.yaml中添加对组件的依赖:
90
91```yaml
92
93depends:
94  - jsoncpp: master # helloworld_demo中引入jsoncpp组件
95
96```
97
98## 步骤3 下载组件
99
100在已安装了  的开发环境工具栏中,选择Terminal -> New Terminal启动终端,并且默认工作路径为当前工程的workspace,此时在终端命令行中输入:
101
102```shell
103
104aos install jsoncpp
105
106```
107
108上述命令执行成功后,组件源码则被下载到了./components/jsoncpp路径中。
109
110## 步骤4 添加示例
111
112在jsoncpp组件的package.yaml中添加[example示例代码](https://gitee.com/alios-things/jsoncpp/tree/master/example)113
114```yaml
115source_file:
116  - "src/lib_json/json_reader.cpp"
117  - "src/lib_json/json_value.cpp"
118  - "src/lib_json/json_writer.cpp"
119  - "example/jsoncpp_comp_example.cpp" # add jsoncpp_comp_example.cpp
120```
121
122## 步骤5 编译固件
123
124在示例代码已经添加至组件的配置文件,并且helloworld_demo已添加了对该组件的依赖后,就可以编译helloworld_demo案例来生成固件了,具体编译方法可参考[《AliOS Things集成开发环境使用说明之编译固件》](https://help.aliyun.com/document_detail/302384.html)125
126## 步骤6 烧录固件
127
128helloworld_demo案例的固件生成后,可参考[《AliOS Things集成开发环境使用说明之烧录固件》](https://help.aliyun.com/document_detail/302383.html)来烧录固件。
129
130## 步骤7 打开串口
131
132固件烧录完成后,可以通过串口查看示例的运行结果,打开串口的具体方法可参考[《AliOS Things集成开发环境使用说明之查看日志》](https://help.aliyun.com/document_detail/302382.html)133
134当串口终端打开成功后,可在串口中输入help来查看已添加的测试命令。
135
136## 步骤8 测试示例
137
138> CLI命令行输入:
139```sh
140jsoncpp_write_string_example
141```
142> CLI命令行显示结果:
143```sh
144json write json_file = {
145        "action" : "run",
146        "data" :
147        {
148                "number" : 1
149        }
150} !
151```
152
153> CLI命令行输入:
154```sh
155jsoncpp_comp_read_string_example
156```
157> CLI命令行显示结果:
158```sh
159json read name = colin !
160josn read age = 20 !
161```
162
163
164# FAQ
165