JSON查询
偷懒,用JavaScript做比较简便。
(其实所谓的JavaScript
其实是NodeJS
)
const readline = require('readline')
const rl = readline.createInterface({
input: process.stdin,
output: process.stdout
});
// 监听键入回车事件
var a=new Array(),k=0;
rl.on('line', (str) => {
// str即为输入的内容
if (str === 'close') {
// 关闭逐行读取流 会触发关闭事件
rl.close()
}
a[k++]=str;
});
rl.on('close', () => { //输入完毕
var n,m;
var firstline=a[0];
var arr = firstline.toString().split(" "); //第一行分割空格
var m=arr[0];
var n=arr[1];
var JSON1="";
for(var i=0;i<m;i++){
JSON1=JSON1+a[1+i];
}
//.log(JSON1);
var json = JSON.parse(JSON1);//利用自带JSON进行解析(WOW)
for(var i=0;i<n;i++){
var idx=Number(m)+1+i;
var in1=a[idx];
//console.log("json."+json[in1]+"\n");
var arr1 = in1.toString().split(".");
var cc=json;
for(var j=0;j<arr1.length;j++){//分割'.'进行多层处理
try{//由于没有对象会直接报错,所以加上try更保险。
cc=cc[arr1[j]];
}catch(e){
//e为错误信息,但不要输出e。
}
}
RES=cc;
if(typeof RES=='object'){//输出特判
console.log("OBJECT");
}else if(typeof RES=='undefined'){
console.log("NOTEXIST");
}else{
var up=typeof RES;
if(up=='string') up='STRING';
console.log(up+" "+RES);
}
}
})
JSON解析:JSON.parse(数据)
JSON取值:JSON[名称]
防止报错:
try{
}catch(e){
//e为错误信息
}
输出:console.log(数据)
输入:
const readline = require('readline')
const rl = readline.createInterface({
input: process.stdin,
output: process.stdout
});
// 监听键入回车事件
var a=new Array(),k=0;
rl.on('line', (str) => {
// str即为输入的内容
if (str === 'close') {
// 关闭逐行读取流 会触发关闭事件
rl.close()
}
a[k++]=str;//保存读入数据
});
rl.on('close', () => { //输入完毕
//输入完后处理。
//输入完后变量为a。
});