关于JSON.parse()的问题

关于JSON.parse()的问题

<input type="text">
 <ul>
  <li></li>
  <li></li>
  <li></li>
 </ul>
 <script>
  var input=document.getElementsByTagName("input")[0];
  var show=document.getElementsByClassName("show")[0];
  var li=document.getElementsByTagName("li");
  input.addEventListener("keyup",function(){
   AjaxShow();
  })
  function AjaxShow(){
   var xhr=new XMLHttpRequest();
   xhr.open('GET','json/Show.json');
   xhr.onreadystatechange=function(){
    var str=xhr.response;
    if(xhr.readyState==4){
     JSON.parse(str,function(k,y){
      if(k === '') return ;
      else if(k==input.value){
       li[0].innerHTML=y;
      }
     })
    }
   }
   xhr.send();
  }
 </script>

//这是json

{
 "a":{"b":"e","c":"f","d":["G","H"]}
}

不知道为什么,d键值对应的值是“,”,a键值对应的是object,每次设置数组,键值对应的都是逗号,该怎么改正呢

正在回答 回答被采纳积分+1

登陆购买课程后可参与讨论,去登陆

2回答
怎么都被占用了呢 2018-04-25 10:59:43

可以这么写http://img1.sycdn.imooc.com//climg/5adfef1d0001453e08430238.jpg

怎么都被占用了呢 2018-04-24 19:11:31

你是想设置键值d对应的数组吗,可以参考一下下面的小demo

    var str='{"a":{"b":"e","c":"f","d":["G","H"]}}';

var aa=JSON.parse(str);

console.log(aa.a.d);


  • 提问者 qq_痴心欲_0 #1
    我打算在input里面输入某值,如果存在键值那么把键值对应的值放入li标签中,不知道为什么,当键值的值是一个数组时候,键值对应的不是这个数组的内容,而且一个“,”,我想问这情况怎么处理
    2018-04-24 19:42:03
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
组件化思想开发电商网页 18版
  • 参与学习           人
  • 提交作业       467    份
  • 解答问题       4826    个

本路径带你通过系统学习HTML5、JavaScript、jQuery的进阶知识,不仅如此,还会学习如何利用组件化的思想来开发网页,知识点+案例,使得所学可以更好的得到实践。

了解课程
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师