日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程语言 > c/c++ >内容正文

c/c++

js与C++交互及C++解析json

發(fā)布時間:2023/12/31 c/c++ 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 js与C++交互及C++解析json 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

轉(zhuǎn)載:http://zhidao.baidu.com/link?url=LLuWzwMmpfVcQeSGv1CrAfRXpnZaetm9xypqwMW6zxLhhKES-rITAsG0-Ku-bSMAc2nVoSFk1tOJ0biPcQIoHK

轉(zhuǎn)載:http://blog.csdn.net/aasmfox/article/details/7016236

1.手動點擊網(wǎng)頁按鈕C++后臺響應(yīng)

2.設(shè)置自動觸發(fā)事件

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" > <head><title>Untitled Page</title><style type="text/css">#button1{width: 306px;}#button2{width: 306px;}</style><script language="javascript" type="text/javascript">function Test(){alert("你調(diào)用了Test");}function GlobalObject(){this.Test=function(){alert("你調(diào)用了GlobalObject.Test");}}function OnTest() {alert("自動觸發(fā)事件");}var globalObject = new GlobalObject();// 兩秒后模擬點擊 setTimeout(function () {// IEif (document.all) {document.getElementById("clickMe").click();//找到對應(yīng)元素進(jìn)行點擊}// 其它瀏覽器else {var e = document.createEvent("MouseEvents");e.initEvent("click", true, true);document.getElementById("clickMe").dispatchEvent(e);}}, 2000);</script> </head> <body> 測試頁面<br /> <br /><a href="#" id="clickMe" onclick="OnTest();">link</a> <input id="button1" type="button" value="點擊演示在C++中處理按鈕的onclick事件" /> <br /> <br /> <input id="button2" type="button" value="點擊調(diào)用客戶端的CppCall函數(shù)" onclick="return window.external.CppCall()" /> <br /> <br /><p id="p1">Hello World!</p><br /> <div id="size_info"></div> </body> </html>

?

js與C++交互demo

?

比較詳細(xì)的交互教程:

轉(zhuǎn)載:http://blog.csdn.net/charlessimonyi/article/details/18447471

?

C++ 解析Json——jsoncpp

轉(zhuǎn)載:http://www.cppblog.com/wanghaiguang/archive/2013/12/26/205020.html

轉(zhuǎn)載:http://blog.csdn.net/crazyer2010/article/details/8962449

轉(zhuǎn)載:http://blog.sina.com.cn/s/blog_86fe5b4401019xbt.html

轉(zhuǎn)載:http://93635083.blog.sohu.com/269335462.html

轉(zhuǎn)載:http://blog.csdn.net/chenscmail/article/details/10109739

轉(zhuǎn)載:http://www.cnblogs.com/kex1n/archive/2011/12/02/2272328.html

?解析JSon串:轉(zhuǎn)載:https://www.cppfans.org/1445.html

轉(zhuǎn)載:https://www.cnblogs.com/chenyangchun/p/6953132.html(Json::Value isMember成員使用)

VC下使用JSONCPP(json)

Jsoncpp是個跨平臺的開源庫,下載地址Jsoncpp開源庫

使用JsonCpp的Demo

3.使用jsoncpp幾個例子:

1 void Myparse1() 2 { 3 const char* str = "{\"result\":{\"id\":\"cc1521c7e1084d90bb26c6a0ee965c8c\",\"mLocktime\":0,\"mTouchid\":\"0\",\"modifyTime\":1480753775000},\"status\":\"ok\"}"; 4 Json::Reader reader; 5 Json::Value root; 6 if (reader.parse(str, root)) // reader將Json字符串解析到root,root將包含Json里所有子元素 7 { 8 std::string str = root["result"]["id"].asString();//得到 9 std::string str1 = root["status"].asString();//得到ok 10 11 } 12 } 13 14 void Myparse2() 15 { 16 const char* str = "[{\"status\":\"ok\"},{\"MLocktime\":0,\"MTouchid\":\"0\",\"id\":\"cc1521c7e1084d90bb26c6a0ee965c8c\",\"modifyTime\":\"2016-12-03 16:29:35\"}]"; 17 Json::Reader reader; 18 Json::Value root; 19 if (reader.parse(str, root)) // reader將Json字符串解析到root,root將包含Json里所有子元素 20 { 21 int size = root.size(); 22 std::string str = root[size-2]["status"].asString(); 23 std::string str1 = root[size-1]["id"].asString(); 24 25 } 26 } 27 28 void Myparse3() 29 { 30 const char* str = "[{\"age\":24},{\"age\":1},{\"age\":22},{\"age\":24},{\"age\":16}]"; 31 Json::Reader reader; 32 Json::Value root; 33 if (reader.parse(str, root)) // reader將Json字符串解析到root,root將包含Json里所有子元素 34 { 35 int size = root.size(); 36 int age = root[size-5]["age"].asUInt();//得到24 37 38 } 39 } 40 41 void Myparse4() 42 { 43 const char* str = "{\"friendArray\":[{\"age\":24},{\"age\":1},{\"age\":22},{\"age\":24},{\"age\":16}]}"; 44 Json::Reader reader; 45 Json::Value root; 46 if (reader.parse(str, root)) // reader將Json字符串解析到root,root將包含Json里所有子元素 47 { 48 int size = root["friendArray"].size(); 49 int age = root["friendArray"][size-1]["age"].asInt(); 50 51 } 52 }

?在項目開發(fā)中,后臺C++使用jsoncpp解析json串,可以采用上面四種方法進(jìn)行解析,上面的寫法是約定好,一定存在相應(yīng)的key然后拿到value值,因此存在一定的風(fēng)險,如果傳過來的json串某一key丟失,則會導(dǎo)致程序崩潰,為了保證程序的穩(wěn)定性,在取key對應(yīng)的value值時,做一個保護(hù)。

string strJson = "{\"msg\":\"正常\", \"code\":\"A0000\", \"data1\":1,\"data2\":3.1415927, \"data3\":-4}";Json::Reader reader;Json::Value root;if (reader.parse(strjson, root)) // reader將Json字符串解析到root,root將包含Json里所有子元素 {int size = root.size();std::string str = root["msg"].asString();//得到"正常",但msg不存在這樣取程序會崩潰//root對象中有這個key返回true 否則返回false std::string str2 = root.isMember("msg")?root["msg"].asString():"";std::cout <<"uid:"<< str2 << std::endl;//msg存在就打印"正常",若msg不存在則打印空}

?

總結(jié)

以上是生活随笔為你收集整理的js与C++交互及C++解析json的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。