1. 程式人生 > >C++解析JSON字串

C++解析JSON字串

JSON是JavaScript Object Notation的簡稱,一種輕量級的資料交換格式;是Web互動中最流行的資料交換格式之一。

下面是最典型的JSON資料格式的例子:

{"Key1":[{"cccc":"5687"},"123456",{"tttt":[{"aaaaa":"8888888"}]}],"Key2":"234"}

看著例子來說理論,這就容易得多。花括號裡面是鍵值對,方括號裡面陣列.花括號裡面的鍵是一個字串(用雙引號包起來),值可以是字串(用雙引號包起來),也可以是一個數組(用方括號包起來),也可以是字典,Bool或數字,鍵值對之間用英文的逗號隔開;方括號裡面是陣列,陣列的內容可以是一個字串(用雙引號包起來),也可以是一堆花括號包起來的鍵值對,也可以是字典,Bool或數字,陣列的元素之間用英文的逗號隔開.這樣兩者之間可以相互巢狀.

現在如果我們要取123456這個值,那麼應該先Key1取得123456所在的這個陣列,然後再取第二個元素;請看下面這段JS程式碼:

<html>
<head>
<body>
<script type="text/javascript">
var obj={"Key1":[{"cccc":"5687"},"123456",{"tttt":[{"aaaaa":"8888888"}]}],"Key2":"234"};
alert(obj.Key1[1]);
alert(obj.Key1[0].cccc);
alert(obj.Key1[2].tttt[0].aaaaa);
alert(obj.Key2);
</script>
</body>
</html>

這樣彈出來的訊息框分別是123456,5687,8888888,234

那麼用C++怎麼解析JSON字串變成C++的資料結構呢?請看下面的效果:

原始碼下載地址: