1. 程式人生 > >tasker中js解析json

tasker中js解析json

code return asi span spa erro log img net

{
"translation": [
"愛"
],
"basic": {
"us-phonetic": "l?v",
"phonetic": "l?v",
"uk-phonetic": "l?v",
"explains": [
"n. 戀愛;親愛的;酷愛;喜愛的事物;愛情,愛意;疼愛;熱愛;愛人,所愛之物",
"v. 愛,熱愛;愛戴;贊美,稱贊;喜愛;喜好;喜歡;愛慕",
"n. (英)洛夫(人名)"
]
},
"query": "love",
"errorCode": 0,
"web": [
{
"value": [
"愛情",
"愛",
"LOVE (濱崎步專輯)"
],
"key": "Love"
},
{
"value": [
"無盡的愛",
"藍色生死戀",
"不了情"
],
"key": "Endless Love"
},
{
"value": [
"Love Shuffle",
"ラブシャッフル",
"?? ??"
],
"key": "Love Shuffle"
}
]
}


技術分享


/*提取有道api返回json值實例
首先有tasker把有道查詢結果用tasker讀取到%zong中,也可直接用js讀,或者直接用js從網站上獲取 以love為例提取到以上結果*/

//把結果轉對象
var user =eval("("+zong+")") ;

//tasker全局變量的讀取

var imageurl = JSON.parse(global(‘HTTPD‘)).data.children[0].data.url;


//定義函數ab() 判斷取回是否包含對象m,若不包含對象則,返回"空"
function ab(m){
var m;
if(!m){m="空"};
return (m);
};
/*提取json各種對象到tasker變量中
註意json中,[]表示數組,{}表示對象。所以提取數組用Xx.[數字] 提取對象用Xxx.bbb 當然提取全部數組也可以用“.” 只是若數組中有對象,返回[object objct] */

var trans1=ab(user.translation[0]) ;//翻譯結果是數組,數組裏有一組數據
var spk1=ab(user.basic.phonetic);
var exp1= ab(user.basic.explains[0]);//釋義也是一組數據的數組
var err1= ab(user.errorCode);
var net= ab(user.web);//web是多個數組,裏面有好幾組對象
var web1="\n【網絡】\n";
//用for提取出web裏所有對象值
for(var i in net)
{web1=web1+net[i].key+"?"+ net[i].value+"\n"};

tasker中js解析json