js中请求URL获得json数据,将数据解析并建表插入
//打开数据库
var db = openDatabase('mydb', '1.0', 'Test DB', 2 * 1024 * 1024);
//html请求数据
function testXmlHttpRequest() {
var xmlRequest = ajaxFunction();
//获取IP 端口号
// var uname = document.getElementById('username').value;
//window.alert(xmlRequest);
//2.注册客户端的回调函数
xmlRequest.onreadystatechange = function() {
//3.判断服务器响应的状态值
if(xmlRequest.readyState == 4) {
//获取服务器端发送的信息
var messageFromServer = xmlRequest.responseText;
document.getElementById('displayUsername').innerHTML =
"<font color='red'>" + messageFromServer + "</font>";
// var obj = new Function("return" + messageFromServer)(); //转换后的JSON对象
var objxx = {
user_db: [{
id: '001',
loginname: 'yang',
cname: 'yangsi',
password: 'yang123'
}, {
id: '002',
loginname: 'zhang',
cname: 'zhangsi',
password: 'zhang123'
}],
member_db: [{
a: '001',
b: 'zhang',
c: '花火',
d: 'zhang123'
}, {
a: '001',
b: 'zhang',
c: '二月红',
d: 'zhang123'
}]
};
// json字符串的解析
// var show = obj.data.upload;
// document.getElementById('displayData').innerHTML =
// "<font color='red'>" + show + "</font>";
// for(var i = 0; i < 10; i++) { //模拟多条json数据
// //假数据
// var id = "001";
// var loginname = "yang";
// var cname = "杨博伟";
// var password = "yang123";
//
// //插入数据
//
// db.transaction(function(tx) {
// tx.executeSql('CREATE TABLE IF NOT EXISTS user_db (id text,loginname text,cname text,password text)');
// tx.executeSql('insert into user_db values(?,?,?,?)', [id, loginname, cname, password]);
// });
//
// }
parseJsonaddtable(objxx); //将数据解析并建表插入
//读一张用户表数据,form显示
var list = document.getElementById("list");
db.transaction(function(tx) {
//如果数据表不存在,则创建数据表
tx.executeSql('create table if not exists user_db(id text,loginname text,cname text,password text)', []);
//查询所有联系人记录
tx.executeSql('select * from user_db order by id desc', [], function(tx, rs) {
if(rs.rows.length > 0) {
var result = "<table>";
result += "<tr><th>序号</th><th>ID</th><th>登录名</th><th>巡检人</th><th>密码</th></tr>";
for(var i = 0; i < rs.rows.length; i++) {
var row = rs.rows.item(i);
//拼装一个表格的行节点
result += "<tr><td>" + (i + 1) + "</td><td>" + row.id + "</td><td>" + row.loginname + "</td><td>" + row.cname + "</td><td>" + row.password + "</td></tr>";
}
list.innerHTML = result;
} else {
list.innerHTML = "添加联系人";
}
});
});
}
}
//4.open方法指定请求服务器的url地址,拼接IP,端口号
var url = "http://server.jeasonlzy.com/OkHttpUtils/upload";
xmlRequest.open("GET", url, true);
//5.发送
xmlRequest.send(null);
}
function parseJsonaddtable(objxx) {
for(var key in objxx) { //一级键
//key 数据表名
var tablename = key;
var str1 = "";
var str2 = "";
var jsonarr = objxx[key]; //json对象[]
for(var index in jsonarr) {
var sqlstr1 = "";
var sqlstr2 = "";
var subjson = jsonarr[index]; //json数据的具体一个json对象
var num = 0;
var key_values = new Array();
for(var key in subjson) {
//遍历对象键
//key 对象的每一个键
// var subkey = key;
key_values[num] = subjson[key]; //对象的每一个键对应的值
num = num + 1;
//xuyaoqu掉逗号
sqlstr1 = sqlstr1 + key + " text,";
sqlstr2 = sqlstr2 + "?,";
}
//' (name text,phone text,company text,createtime INTEGER)'
//去逗号sqlstr1 sqlstr2
str1 = sqlstr1.substring(0, sqlstr1.length - 1);
sqlstr1 = "";
str2 = sqlstr2.substring(0, sqlstr2.length - 1);
sqlstr2 = "";
//插入表数据
// alert('create table if not exists ' + tablename + '(' + str1 + ')');
// alert('insert into ' + tablename + ' values(' + str2 + ')' + ',' + key_values.toString());
db.transaction(function(tx) { //如果数据表不存在,则创建数据表
tx.executeSql('CREATE TABLE IF NOT EXISTS ' +tablename+ ' (' + str1 + ')');
tx.executeSql('insert into ' + tablename + ' values(' + str2 + ')', key_values);
});
str1 = "";
str2 = "";
}
}
}
//1.创建XmlHttpRequest对象(浏览器不同则创建的方法不同)
function ajaxFunction() {
var xmlHttp;
try {
xmlHttp = new XMLHttpRequest();
} catch(e) {
try {
xmlHttp = new ActiveXObject("Msxml2.XMLHTTP");
} catch(e) {
try {
xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
} catch(e) {
alert("您的浏览器不支持AJAX!");
return false;
}
}
}
return xmlHttp;
}
//登录验证
//获取输入值
//分别在数据库查询条件查询,返回结果results不为空
/*function gotonewye() {
window.location.href = "index01.html";
}*/
function isOkmethod() {
var Usename = document.getElementById("usenames").value;
var PassWord = document.getElementById("passwords").value;
db.transaction(function(tx) {
//如果数据表不存在,则创建数据表
tx.executeSql('create table if not exists user_db(id text,loginname text,cname text,password text)', []);
//查询所有联系人记录
tx.executeSql('select * from user_db where loginname=? and password=?', [Usename, PassWord], function(tx, rs) {
var len = rs.rows.length;
if(len > 0) {
alert("验证成功!");
window.location.href = "menu.html";
} else {
alert("验证失败!");
window.location.href = "loginError.html";
}
});
});
}
js中请求URL获得json数据,将数据解析并建表插入相关推荐
- php批量请求url_php中请求url的五种方法总结
本文主要给大家介绍了关于php中请求url的五种方法,分享出来供大家参考学习,下面话不多说,来一起看看详细的介绍: 五种方法: 前三种都是php基本的文件操作函数 curl()是php扩展需要开启,l ...
- js encodeurl java接收_在JS中encodeURI(url)怎样才能不出现乱码?
这次给大家带来在JS中encodeURI(url)怎样才能不出现乱码?,在JS中使用encodeURI(url)的注意事项有哪些,下面就是实战案例,一起来看一下. 一般情况下, 发送 encodeUR ...
- js中string字符串转换为JSON对象 - 方法大全(4种)
js中string字符串转换为JSON对象 - 方法大全(4种) jQuery插件支持的转换方式: 示例: //jQuery.parseJSON(jsonstr),可以将json字符串转换成json对 ...
- JS中数组(Array)、Json对象长度(length)获取方法
JS中数组(Array).Json对象长度(length)获取方法 1.数组 var array = []; var length = array.length; 2.JSON对象 1)方法1: va ...
- node.js中的url.parse方法
学习node.js中的url.parse方法 文章目录 前言 一.URL模块之parse方法详解 1.参数 2.实例 例子1:url.parse只传一个参数的情况 例子2:url.parse第二个参数 ...
- js ajax的请求地址不正确,使用香草JS AJAX请求访问本地JSON文件时出现CORS错误?...
我正在尝试使用香草JS AJAX请求从本地存储的JSON文件中拉回JSON字符串(特别是尝试不使用JQuery)-以下代码基于此答案 -但我在Chrome控制台中不断收到错误(见下文).有什么想法我要 ...
- js中自定义对象、json对象、json字符串、普通js对象 --js学习那本书上的
4.7 自定义对象 JS除了内置对象之外,还允许我们程序自己定义属于我们自己的对象,在JS中自定义对象的方式有2种:通过构造器创建对象,通过初始化器创建对象. 4.7.1 构造器创建对象(原生JS对象 ...
- js中自定义对象、json对象、json字符串、普通js对象
4.7 自定义对象 JS除了内置对象之外,还允许我们程序自己定义属于我们自己的对象,在JS中自定义对象的方式有2种:通过构造器创建对象,通过初始化器创建对象. 4.7.1 构造器创建对象(原生JS对象 ...
- 浅入浅出JS中的eval及json
声明: 首先声明一下,本人是JS新手,所以不敢说深入,只是把最近对eval的学习经验拿出来跟大家分享,如果您是高手可略去不看. 适合读者: 对JS中的eval一知半解,不知eval是如何把字符串转换为 ...
最新文章
- Solr部署如何启动
- [转帖]tar高级教程:增量备份、定时备份、网络备份
- 桌面程序调用Web Service应用实例
- 2021牛客暑期多校训练营8 OR 相加和与和或-dfs判断假设情况是否有矛盾
- 科大星云诗社动态20210326
- 名为 cursor_jinserted 的游标不存在_性能优化技巧 - 程序游标
- 如何进行MaxCompute 用户认证?
- python统计图教程_Python利用matplotlib绘制约数个数统计图示例
- POJ_1062_(dijkstra)
- 一起看一下主流应用使用了哪些三方库
- 盘一盘 Thread源码
- springboot自动配置_揭秘SpringBoot自动化配置
- 新鲜出炉,Python 告诉你程序员最关注的技术竟然是……
- Clojure的并发(七)pmap、pvalues和pcalls
- cocos2dx游戏开发简单入门视频教程 (cocos2d-x)- 第5天
- SQL Server 审计操作概念
- 多线程获取不到HttpContext
- SEO之搜索引擎简史
- MATLAB信号的带宽估计及求带宽(3dB,90%带宽)
- Tomcat,Servlet,JSP之间是什么关系?