@page jsoncpp jsoncpp

[鏇存鏂囨。](https://gitee.com/alios-things/jsoncpp/edit/master/README.md)      [璐$尞璇存槑](https://help.aliyun.com/document_detail/302301.html)

# 姒傝堪

JSON鏄竴绉嶈交閲忕骇鐨勬暟鎹氦鎹㈡牸寮忋€傚畠鍙互琛ㄧず鏁板瓧锛屽瓧绗︿覆锛屽€肩殑鏈夊簭搴忓垪浠ュ強鍚嶇О/鍊煎鐨勯泦鍚堛€�

JsonCpp鏄竴涓狢 ++搴擄紝瀹冨厑璁稿鐞咼SON鍊硷紝鍖呮嫭鍦ㄥ瓧绗︿覆涔嬮棿杩涜搴忓垪鍖栧拰鍙嶅簭鍒楀寲銆傚畠杩樺彲浠ュ湪鍙嶅簭鍒楀寲/搴忓垪鍖栨楠や腑淇濈暀鐜版湁娉ㄩ噴锛屼粠鑰屼娇鍏舵垚涓哄瓨鍌ㄧ敤鎴疯緭鍏ユ枃浠剁殑渚挎嵎鏍煎紡銆�

JsonCpp 鏄竴涓紑婧愪笁鏂瑰簱锛屽畼鏂瑰湴鍧€濡備笅锛�
https://github.com/open-source-parsers/jsoncpp

璇ョ粍浠舵敮鎸佷互涓嬪姛鑳斤細
- json瀛楃涓茬紪鐮�
- json瀛楃涓茶В鐮�

## 鐗堟潈淇℃伅
> MIT license

## 鐩綍缁撴瀯
```tree
.
鈹溾攢鈹€ cmake
鈹溾攢鈹€ CMakeFiles
鈹溾攢鈹€ devtools
鈹溾攢鈹€ doc
鈹溾攢鈹€ example
鈹�   鈹斺攢鈹€ jsoncpp_comp_example.c    # jsoncpp 娴嬭瘯鐢ㄤ緥浠g爜
鈹溾攢鈹€ include
鈹�   鈹斺攢鈹€ json                      # jsoncpp 澶存枃浠�
鈹溾攢鈹€ pkg-config
鈹溾攢鈹€ src
鈹�   鈹斺攢鈹€ lib_json                  # jsoncpp 鏍稿績婧愭枃浠�
鈹斺攢鈹€ test                          # jsoncpp 娴嬭瘯鐩稿叧鏂囦欢
```

## 渚濊禆缁勪欢

* osal_aos
* cplusplus

# 甯哥敤閰嶇疆

# API璇存槑
    绗笁鏂瑰簱 API 瀵瑰簲鏀惧湪澶存枃浠朵腑锛屾瘡涓ご鏂囦欢鐨勭被閮藉寘鍚簡绫讳腑鍑芥暟鐨勮缁嗚В閲�

Read 鐩稿叧绫伙細

```C
class JSON_API CharReader
class JSON_API Factory
class JSON_API CharReaderBuilder
```

Write 鐩稿叧绫伙細

```C
class JSON_API StreamWriter
class JSON_API StreamWriterBuilder
```
value 鐩稿叧绫伙細

```C
class JSON_API Value
class JSON_API Path
class JSON_API ValueIteratorBase
class JSON_API ValueConstIterator
class JSON_API ValueIterator 
```

# 浣跨敤绀轰緥

缁勪欢浣跨敤绀轰緥鐩稿叧鐨勪唬鐮佷笅杞姐€佺紪璇戝拰鍥轰欢鐑у綍鍧囦緷璧朅liOS Things閰嶅鐨勫紑鍙戝伐鍏凤紝鎵€浠ラ鍏堥渶瑕佸弬鑰僛銆夾liOS Things闆嗘垚寮€鍙戠幆澧冧娇鐢ㄨ鏄庝箣鎼缓寮€鍙戠幆澧冦€媇(https://help.aliyun.com/document_detail/302378.html)锛屼笅杞藉畨瑁呫€�
寰呭紑鍙戠幆澧冩惌寤哄畬鎴愬悗锛屽彲浠ユ寜鐓т互涓嬫楠よ繘琛岀ず渚嬬殑娴嬭瘯銆�

## 姝ラ1 鍒涘缓鎴栨墦寮€宸ョ▼

**鎵撳紑宸叉湁宸ョ▼**

濡傛灉鐢ㄤ簬娴嬭瘯鐨勬渚嬪伐绋嬪凡瀛樺湪锛屽彲鍙傝€僛銆夾liOS Things闆嗘垚寮€鍙戠幆澧冧娇鐢ㄨ鏄庝箣鎵撳紑宸ョ▼銆媇(https://help.aliyun.com/document_detail/302381.html)鎵撳紑宸叉湁宸ョ▼銆�

**鍒涘缓鏂扮殑宸ョ▼**

缁勪欢鐨勭ず渚嬩唬鐮佸彲浠ラ€氳繃缂栬瘧閾炬帴鍒癆liOS Things鐨勪换鎰忔渚嬶紙solution锛夋潵杩愯锛岃繖閲岄€夋嫨helloworld_demo妗堜緥銆俬elloworld_demo妗堜緥鐩稿叧鐨勬簮浠g爜涓嬭浇鍙弬鑰僛銆夾liOS Things闆嗘垚寮€鍙戠幆澧冧娇鐢ㄨ鏄庝箣鍒涘缓宸ョ▼銆媇(https://help.aliyun.com/document_detail/302379.html)銆�

## 姝ラ2 娣诲姞缁勪欢

妗堜緥涓嬭浇瀹屾垚鍚庯紝闇€瑕佸湪helloworld_demo缁勪欢鐨刾ackage.yaml涓坊鍔犲缁勪欢鐨勪緷璧栵細

```yaml

depends:
  - jsoncpp: master # helloworld_demo涓紩鍏soncpp缁勪欢

```

## 姝ラ3 涓嬭浇缁勪欢

鍦ㄥ凡瀹夎浜�  鐨勫紑鍙戠幆澧冨伐鍏锋爮涓紝閫夋嫨Terminal -> New Terminal鍚姩缁堢锛屽苟涓旈粯璁ゅ伐浣滆矾寰勪负褰撳墠宸ョ▼鐨剋orkspace锛屾鏃跺湪缁堢鍛戒护琛屼腑杈撳叆锛�

```shell

aos install jsoncpp

```

涓婅堪鍛戒护鎵ц鎴愬姛鍚庯紝缁勪欢婧愮爜鍒欒涓嬭浇鍒颁簡./components/jsoncpp璺緞涓€�

## 姝ラ4 娣诲姞绀轰緥

鍦╦soncpp缁勪欢鐨刾ackage.yaml涓坊鍔燵example绀轰緥浠g爜](https://gitee.com/alios-things/jsoncpp/tree/master/example)锛�

```yaml
source_file:
  - "src/lib_json/json_reader.cpp"
  - "src/lib_json/json_value.cpp"
  - "src/lib_json/json_writer.cpp"
  - "example/jsoncpp_comp_example.cpp" # add jsoncpp_comp_example.cpp
```

## 姝ラ5 缂栬瘧鍥轰欢

鍦ㄧず渚嬩唬鐮佸凡缁忔坊鍔犺嚦缁勪欢鐨勯厤缃枃浠讹紝骞朵笖helloworld_demo宸叉坊鍔犱簡瀵硅缁勪欢鐨勪緷璧栧悗锛屽氨鍙互缂栬瘧helloworld_demo妗堜緥鏉ョ敓鎴愬浐浠朵簡锛屽叿浣撶紪璇戞柟娉曞彲鍙傝€僛銆夾liOS Things闆嗘垚寮€鍙戠幆澧冧娇鐢ㄨ鏄庝箣缂栬瘧鍥轰欢銆媇(https://help.aliyun.com/document_detail/302384.html)銆�

## 姝ラ6 鐑у綍鍥轰欢

helloworld_demo妗堜緥鐨勫浐浠剁敓鎴愬悗锛屽彲鍙傝€僛銆夾liOS Things闆嗘垚寮€鍙戠幆澧冧娇鐢ㄨ鏄庝箣鐑у綍鍥轰欢銆媇(https://help.aliyun.com/document_detail/302383.html)鏉ョ儳褰曞浐浠躲€�

## 姝ラ7 鎵撳紑涓插彛

鍥轰欢鐑у綍瀹屾垚鍚庯紝鍙互閫氳繃涓插彛鏌ョ湅绀轰緥鐨勮繍琛岀粨鏋滐紝鎵撳紑涓插彛鐨勫叿浣撴柟娉曞彲鍙傝€僛銆夾liOS Things闆嗘垚寮€鍙戠幆澧冧娇鐢ㄨ鏄庝箣鏌ョ湅鏃ュ織銆媇(https://help.aliyun.com/document_detail/302382.html)銆�

褰撲覆鍙g粓绔墦寮€鎴愬姛鍚庯紝鍙湪涓插彛涓緭鍏elp鏉ユ煡鐪嬪凡娣诲姞鐨勬祴璇曞懡浠ゃ€�

## 姝ラ8 娴嬭瘯绀轰緥

> CLI鍛戒护琛岃緭鍏ワ細
```sh
jsoncpp_write_string_example
```
> CLI鍛戒护琛屾樉绀虹粨鏋滐細
```sh
json write json_file = {
        "action" : "run",
        "data" : 
        {
                "number" : 1
        }
} !
```

> CLI鍛戒护琛岃緭鍏ワ細
```sh
jsoncpp_comp_read_string_example
```
> CLI鍛戒护琛屾樉绀虹粨鏋滐細
```sh
json read name = colin !
josn read age = 20 !
```


# FAQ