永发信息网

JSON.parse()的问题

答案:2  悬赏:30  手机版
解决时间 2021-02-04 11:17
//保存数据
function save(){
var contact = new Object;
contact.user_name = document.getElementById("user_name").value;
contact.mobilephone = document.getElementById("mobilephone").value;
contact.company = document.getElementById("company").value;
var str = JSON.stringify(contact);
localStorage.setItem(contact.mobilephone,str);
loadAll();
}

//查找数据
function find(){

var search_phone = document.getElementById("search_phone").value;
var name = localStorage.getItem(search_phone);
var mobilephone = localStorage.key(name);
var str = localStorage.getItem(contact.mobilephone);
var contact = JSON.parse(str);
var find_result = document.getElementById("find_result");
find_result.innerHTML = search_phone + "的机主是:" +contact.user_name;
}
在查询数据的代码中想要通过JSON.parse()来获取准确的储存在本地上的值,但是那里错误呢?
最佳答案
contact对象没有定义,localStorage.key方法乱用



你的数据结构里头mobilephone===search_phone,不然localStorage取出来的是null哇,要判断一下的

function find(){
    var str=localStorage[document.getElementById("search_phone").value];
    if(str){
        var contact=JSON.parse(str);
        document.getElementById("find_result").innerHTML=contact.mobilephone+"的机主是:" +contact.user_name; 
    }
}
全部回答
对于json.parse的异常处理一般大家只是严格处理json字符串,字符串本身必须带引号,数组的话,数组每一项必须带引号,对象的话,对象的键值都必须带双引号; 所以如果客户端传来的字符串不正确,json.parse()会报错,使程序出现异常;从而使程序退出; 这是需要一个程序捕获异常,让程序能正常运行下去; 这里运用了promise捕获异常的方法; promise对象的catch方法会自动捕获异常程序;不用设置reject回调; 坚持下去就能成功
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
花嫁新娘(西闸塘路35)地址好找么,我有些事要
魔兽3不死族怎么采矿?
四川巴中苹果体验店的详细地址在哪里?
晨光影像地址在什么地方,我要处理点事
2008年9月25日 21时10分神舟七号飞船发射成
咸阳795厂
鸿鑫广告怎么去啊,我要去那办事
鲁大师怎么显示网速
荣霖商务宾馆地址在什么地方,想过去办事
淮安市疾病预防控制中心狂犬疫苗
做汉中米面皮要加盐吗?比例是多少?什么时候
华艺文印(民生路福鹿苑旁)地址有知道的么?有
患者,女,30岁。左手背不慎被热汤灼伤,皮肤
女生穿小背心过程
“过了这么久” 的文言文的写法
推荐资讯
若客户企业的产品属于生产资料产品,则适宜采
泰苑大厦地址在哪,我要去那里办事
在asp中登陆之后如何传值给另一个页面的label
坐轻轨有年龄限制吗
交谈是交往最常用的方式。在交谈中,我们应该
请教各位同学,水稻,玉米的各叶期是什么时
宜昌装有线电视在哪里
去年春晚王菲唱的《传奇》的原唱是谁?
手机有个卡槽不行!拆开后发现2个卡槽接触点
夸人帅气的成语
男性22周岁的生日当天能登记吗?
一个提手一个庸是什么成语
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?